
Percona XtraBackup 8.0.26使用说明
● 1. Percona XtraBackup特性说明
● 2. Percona Xtrabackup 备份恢复权限限制
● 3. 创建备份用户、配置参数及数据准备
● 4. 全量备份与恢复
● 5. 增量备份
● 6. 压缩备份
● 7. 流备份
1. Percona XtraBackup特性说明
● 1)Percona Xtrabackup 8.0.26新增支持MyRocks存储引擎,不支持TokuDB引擎
● 2)Percona Xtrabackup 8.0.26 不支持低于MySQL 8.0的备份(因为MySQL 8.0在数据字典、redo log中和之前版本不兼容)
● 3)Percona Xtrabackup 8.0.26 目前X86版本可以从官方下载,ARM版本需要手动编译
● 4)备份文件必须是空的,没有任何文件
2. Percona Xtrabackup 备份恢复权限限制
● 1)备份路径需要有可读写权限
● 2)reload和Lock Tables(指定--no-locak选项除外),因为备份前需要执行FLUSH TABLES WITH READ LOCK和FLUSH ENGINE LOGS
● 3)Backup_admin权限,因为备份时需要查询performance_schema.log_status表并运行LOCK INSTANCE FOR BACKUP, LOCK BINLOG FOR BACKUP, or LOCK TABLES FOR BACKUP
● 4)Replication client权限。备份时为了读取二进制日志文件
● 5)Create tablespace权限。恢复表时需要创建表
● 6)Process权限。备份时需要运行show engine innodb status命令
● 7)Super权限。为了在复制环境中启动/停止复制线程
● 8)Create权限。为了创建percona_schema.xtrbackup_history表
● 9)Alter权限。为了更新percona_schema.xtrbackup_history表
● 10)Insert权限。为了将历史记录插入到percona_schema.xtrbackup_history表
● 11)Select权限。为了查询历史数据
3. 创建备份用户、配置参数及数据准备
配置参数,Xtrbackup在备份时会读取MySQL的my.cnf配置文件中[mysqld]和[xtrabackup]部分,所以我们可以在配置文件中设置备份的目录[xtrabackup],target_dir = /data/backups/mysql
注意:如果my.cnf配置文件中有--set-variable=<variable>=<value>,xtrabackup不识别,需要使用--veriable=value代替 版本检测,Percona xtrabackup 8.0.21添加了--no-server-version-check参数,会将备份源版本和Percona Xtrabackup版本对比
源系统和PXB版本一样,备份继续 源系统低于PXB版本,备份继续 源系统大于PXB版本,且参数未被覆盖,停止备份并返回错误 源系统大于PXB版本,参数被覆盖,备份继续
覆盖参数时,可能会发生备份失败、创建损坏的备份、备份成功
3.1 Sysbench造数据
4. 全量备份与恢复
4.1 全量备份
4.2 全量恢复
准备工作,由于使用--backup备份数据文件时时间点时不一致的(备份增量redo日志线程会实时监听增量数据),因为程序在不同的时间点复制,并且再复制过程中可能会被更改,如果使用innodb直接尝试启动这些数据文件,innodb将检测损坏并停止运行,所以需要使用--prepare将将备份文件进行崩溃恢复,来使用这些复制文件
// 拷贝数据 注意:需要将源目录进行备份,且恢复目录要为空
// 修改目录属性启动数据库
// 启动数据库
// 检测
5. 增量备份
增量备份需要在全量备份的基础上进行,每个innodb页面都包含一个日志序列号LSN。该LSN是整个数据库系统的版本号。每个页面的LSN显示最近更改的时间。增量备份时会将上一次全量备份的LSN或上一次增量备份的LSN和当前页面的LSN进行对比,通过两种算法继续查找。
第一种就是读取所有的数据页面直接检查页面LSN(适用所有版本MySQL),第二种就是在服务器上启用”更改页面跟踪“功能,该功能会在页面更改时进行记录,将信息保存下来,xtrbackup做增量备份时回去读取该信息,从而节省资源(该查找方法适用于percona server for MySQL)
● 全量备份
● 应用中继日志
● 输出:
● 增量备份:查看全量备份目录的xtrbackup_checkpoints
● 增量备份命令
● 输出信息:
From_lsn是备份的起始LSN,对于增量,他必须与前一个备份检查点to_lsn相同
● 应用中继日志
--prepare增量备份恢复时与全量备份不同,在全量备份时执行--prepare为了保证数据库一致,针对数据文件从日志文件重放已提交的事务,以及回滚未提交的事务。在增量时,必须跳过未提交事务的回滚,因为备份时未提交的事务可能正在进行中,很可能在下一次增量备份中提交,所以需要使用--apply-log-only选项来防止回滚阶段。
将第一个增量备份应用到全量备份中(增量文件将会应用到/data1/xtrbackup/full中)
输出信息:
注意:全量备份中的to_LSN号和增量备份中的checkpoints的to_lsn号相同 如果做多次增量备份时,需要在每次做完增量备份后使用--prepare --apply-log-only将增量部分合并到全量备份中,否则会报lsn冲突
5.1 增量恢复
全备+增备恢复完成
6. 压缩备份
我们在备份时可以对备份文件进行压缩备份,使用--compress选项
由于--compress使用到了qpress,所以需要安装percona-release包
增加备份线程
输出如下信息:
6.1 解压备份及恢复
解压文件:
备份恢复:
7. 流备份
使用流备份传输到名为backup.xbstream
加密备份
加压备份到当前目录
使用流备份方式到其他服务器上
限制备份工具的吞吐量为10MB/秒
Enjoy GreatSQL :)
文章转载自公众号:GreatSQL社区
