「XtraBackup」- 备份数据的“预备”(Prepare)操作

https://blog.k4nz.com/4ff9b68590c3c0d9c0c8da013b4e74c5/

问题描述

使用 XtraBackup 产生的备份数据无法直接使用
在数据备份(–backup)后,由于数据文件复制的时间点不同,因此数据不一致而无法使用。另外 InnoDB 会将这些数据文件视为损坏,将拒绝启动。

如何才能使备份数据正常使用,以用于数据库恢复
需要对数据进行“预备”(Prepare)操作,使数据文件完全一致,然后才能用于数据恢复及在 InnoDB 中运行。

环境描述

软件版本:Xtrabackup 2.2

附加说明

在预备操作时发生了什么?
在预备时,XtraBackup 将启动内嵌的修改版 InnoDB 引擎,以处理复制的备份文件,是数据文件保持一致。

执行预备操作的位置
可以在任意服务器中进行预备操作。

配置文件问题
在备份过程中,会在备份目录生成 backup-my.cnf 文件,保存 InnoDB 配置信息。

在预备操作时,需要该配置文件,会被自动加载。错误的配置文件会导致错误的恢复。

软件版本问题
(1)旧版 XtraBackup 备份的数据,可以使用新版 XtraBackup 进行预备操作,但是反过来不行。
(2)另外新版 XtraBackup 可能移除对旧版数据库的支持,也无法用于数据预备操作。比如 XtraBackup 2.2 不再支持 MySQL 5.0,需要使用 XtraBackup 2.1 进行预备操作。

总的来说,保证版本相同就不会有太大问题。

预备命令使用方法

第一次执行

预备操作非常简单,无需关注底层细节:

#!/bin/sh

xtrabackup --prepare --target-dir=/data/backups/mysql/
在预备操作完成并成功后,将显示如下输出:

101107 16:40:15 InnoDB: Shutdown completed; log sequence number

第二次执行

可以在备份数据上再次预备:

#!/bin/sh

xtrabackup --prepare --target-dir=/data/backups/mysql/
此时将生成 InnnoDB 日志文件(否则在 MySQL 启动时自动生成,将耗费些时间):

xtrabackup: This target seems to be already prepared.
xtrabackup: notice: xtrabackup_logfile was already used to ‘–prepare’.
101107 16:54:10 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to MB
InnoDB: Database physically writes the file full: wait…
101107 16:54:10 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to MB
InnoDB: Database physically writes the file full: wait…
101107 16:54:15 InnoDB: Shutdown completed; log sequence number 1284108

第三次执行

从第三次预备开始,将不会再修改数据文件,即后续预备操作将毫无意义。

从第三次预备开始,命令的输出如下:

xtrabackup: This target seems to be already prepared.
xtrabackup: notice: xtrabackup_logfile was already used to ‘–prepare’.

注意事项

请勿中断预备操作,否则会导致备份文件损坏,并且无法用于数据恢复。

本文基于 XtraBackup 2.2 版本,而在 XtraBackup 2.4 中,将自动生成 InnoDB 日志文件。

在增量备份中的预备操作
在增量备份中,需要使用 –apply-log-only 进行预备操作,否则无法在备份数据上进行增量备份。

参考文献
Percona XtraBackup 2.2 Documentation/Preparing the backup


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部