当前位置: 首页 > news >正文

xtrabackup 使用

官网

Percona XtraBackup

Use APT repositories - Percona XtraBackup

一 安装

下载

wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb

wget https://repo.percona.com/apt/percona-release_latest.zesty_all.deb

可下载列表 Percona Repo

加源

dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb

dpkg -i percona-release_latest.zesty_all.deb

源文件列表 用于检查

/etc/apt/sources.list.d/percona-release.list

允许使用

percona-release enable-only tools release

或者配和mysql使用 percona-release enable-only tools.

安装

apt updateapt install percona-xtrabackup-80

可用参数

xtrabackup --help

--host='ip地址'

--user='用户名'

--password='密码'

--port='端口'

--backup   将备份保存到target-dir

--target-dir='目标目录'

--incremental-basedir=全量备份位置   (对于--backup):只复制指定目录下比backup更新的。ibd页面。

--perpare 准备一份备份,以便在备份上启动mysql服务器。redo log日志合并。

--apply-log-only  在准备过程中应用日志后,停止恢复进程,不进行LSN进程。

--copy-back 将以前备份的所有文件从备份目录复制到它们的原始位置。

二 备份

全量备份

xtrabackup --host='ip地址' --user='用户名' --password='密码' --backup  --target-dir=全量备份保存位置

增量备份

xtrabackup --host='ip地址' --user='用户名' --password='密码' --backup  --incremental-basedir=全量备份位置 --target-dir=增量备份位置

三 还原

增量备份的--prepare步骤与完全备份的--prepare步骤不同。

在完全备份中,执行两种类型的操作以使数据库保持一致:根据数据文件从日志文件重放已提交的事务,回滚未提交的事务。在准备增量备份时,必须跳过未提交事务的回滚,因为在备份时未提交的事务可能正在进行中,并且很可能在下一次增量备份中提交。您应该使用--apply-log-only选项来防止回滚阶段。

全量还原

#日志还原
xtrabackup --prepare --target-dir=全量备份位置#文件还原
xtrabackup --copy-back --target-dir =全量备份位置

增量还原

如果不使用--apply-log-only选项来阻止回滚阶段,那么增量备份将是无用的。回滚事务后,不能应用进一步的增量备份。

xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=全量备份位置 --incremental-dir=增量备份位置xtrabackup --defaults-file=/etc/my.cnf --copy-back --apply-log-only --target-dir=全量备份位置 --incremental-dir=增量备份位置

四 原理

基本概念

mysql日志包括 redo log和undo log。redo log又叫事务日志,记录包含了对InnoDB数据的每次更改的记录。所以使用redo log备份InnoDB数据。

在MySQL中,IBD文件是InnoDB存储引擎的表空间文件,用于存储数据和索引。每个InnoDB表都会对应一个或多个.ibd文件,其中包含了表的数据和索引信息。

LSN(Log Sequence Number,日志序列号)是一个核心概念,是数据库内部用于跟踪事务日志(redo log)中各个记录位置的唯一标识符。

xtrabackup将提交的事务日志项应用于数据文件,并对修改数据但未提交的任何事务执行撤消操作。

流程

XtraBackup启动时运行一个后台进程来监视事务日志文件,并复制任何更改。

之后记住LSN,然后复制数据文件。LSN反映了数据库在不同时间点的状态。

XtraBackup会持续这样做。事务日志以循环方式写入,并且可以重用,即备份流程结束。

当服务器支持备份锁时,xtrabbackup首先复制InnoDB数据,然后运行LOCK TABLES FOR backup,然后复制MyISAM表。完成此操作后,将开始备份文件,会备份.frm, .MRG, .MYD, .MYI, .CSM, .CSV, .sdi and .par 文件。

xtrabbackup使用Backup锁,备份完成后解锁。

总结

XtraBackup启动时,监控并复制任何更改,即热备。

之后记住LSN版本,并复制相关用于还原的文件。增量备份,需保证LSN版本大于之前版本。

 五 参考内容

详细分析MySQL事务日志(redo log和undo log)_redolog和undolog的区别-CSDN博客

Xtrabackup工作原理_xtrabackup备份原理-CSDN博客 

How Percona XtraBackup works - Percona XtraBackup

MySQL中LSN介绍(日志序列号)_mysql lsn-CSDN博客

mysql中的ibd文件是什么_mysql中的ibd文件是什么意思-常见问题-PHP中文网

MySQL中的xtrabackup的原理解析_xtrabackup --prepare-CSDN博客

http://www.lryc.cn/news/361325.html

相关文章:

  • C++写一个简单的计算器程序案例
  • Spring Boot 开发 -- swagger3.0 集成
  • 探索安全之道 | 企业漏洞管理:从理念到行动
  • 【记录贴:分布式系列文章】
  • 初识SDN(二)
  • 某红书旋转滑块验证码分析与协议算法实现(高通过率)
  • Gin的快速入门和搭建
  • react-native运行程序 出现 Application XXX is waiting for the debugger
  • 什么文档加密软件好用?迅软DSE加密软件你不会还不知道吧?
  • 【kubernetes】关于k8s集群的污点、容忍、驱逐以及k8s集群故障排查思路
  • linux进程加载和启动过程分析
  • WLAN组网模型探究
  • 操作系统基础知识
  • Kompas AI:智能生活的开启者
  • Java——二进制原码、反码和补码
  • git使用流程
  • C++设计模式|结构型 代理模式
  • C语言 带头双向循环链表的基本操作
  • MATLAB中扩展卡尔曼滤波误差估计的关键点
  • SpringBoot温习
  • Spring Cloud:构建高可用分布式系统的利器
  • IT技术 | 电脑蓝屏修复记录DRIVER_IRQL_NOT_LESS_OR_EQUAL
  • windows 下编译 TessRact+leptonica 识别图片文字
  • 如何把docker里的内容拷贝出来
  • OpenAI开始训练新的前沿模型——但GPT-5至少在90天内不会推出
  • 配置 HTTP 代理 (HTTP proxy)
  • mysql binlog查看指定数据库
  • React + SpringBoot开发用户中心管理系统
  • 移动机器人定位与导航实训记录
  • 彩灯控制器设计 74ls160+ne555实现