共计 1937 个字符,预计需要花费 5 分钟才能阅读完成。
这篇文章将为大家详细讲解有关如何通过 Xtrabackup 日志来恢复检查点文件,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
前几天有个朋友问我的问题,是在 xtrabackup 的时候,没有特别保留 checkpoints 文件,想问问能否通过日志来推理得到里面的 LSN 信息呢,背景条件是做全备。
一个参考的日志如下:
171208 11:21:54 [01] Copying ./sbtest/dba_xtrabackupresult.frm to /data/backup/sbtest/dba_xtrabackupresult.frm
171208 11:21:54 [01] …done
171208 11:21:54 Finished backing up non-InnoDB tables and files
171208 11:21:54 [00] Writing /data/backup/xtrabackup_binlog_info
171208 11:21:54 [00] …done
171208 11:21:54 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS…
xtrabackup: The latest check point (for incremental): 3985406424
xtrabackup: Stopping log copying thread.
….171208 11:21:55 log scanned up to (4060591382)
171208 11:21:55 log scanned up to (4060591382) 171208 11:21:55 Backup created in directory /data/backup/
MySQL binlog position: filename mysqlbin.000017 , position 96607849
171208 11:21:55 [00] Writing /data/backup/backup-my.cnf
171208 11:21:55 [00] …done
171208 11:21:55 [00] Writing /data/backup/xtrabackup_info
171208 11:21:55 [00] …done
xtrabackup: Transaction log of lsn (3597739074) to (4060591382) was copied.
171208 11:21:57 completed OK!
可以看到日志里面出现了很多的 LSN 的信息,首先是能够根据日志得到 LSN 的信息,然后是如果可以的话,这些 LSN 是如何做选择的。
我们必然要引入 xtrabackup 的原理和过程图
总体来说 xtrabackup 会通过物理拷贝的方式,然后来补充增量的数据变化。整个过程和 Oracle 的热备有些类似。日志中的信息相对来说还是很全的,作为参考是足够的。
然后如何恢复呢,我们需要知道有哪些 LSN 是需要的。
一般来说,一个 checkpoints 文件需要如下的 LSN 信息
[root@tk-dba-mysql10-202 backup]# cat *checkpoints
backup_type = full-backuped
from_lsn = xx
to_lsn = xx
last_lsn = xx
compact = 0
recover_binlog_info = 0
为了避免干扰,我做了一些过滤,可以看到基本是由 FROM_LSN,TO_LSN,LAST_LSN 组成的,如果是全备,from_lsn 应该是 0,如果数据库没有负载,或者在这个备份的过程中没有什么写入,那么 to_lsn 和 last_lsn 是一致的。
可是上面的日志很明显,是在数据库比较繁忙的情况下做的备份,所以产生了很多的临界点的 LSN, 所以通过这些细节就需要我们知道整个 xtrabackup 的过程中 LSN 的变化
我就不兜圈子了,通过模拟,得到的一个初步结论如下:
[root@tk-dba-mysql10-202 backup]# cat *checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 3985406424
last_lsn = 4060591382
compact = 0
recover_binlog_info = 0
这个过程是怎么模拟的呢,是在前端通过 sysbench 做压力测试,然后使用 xtrabackup 来备份。整个过程还是比较快的,大概半个小时内能够验证完成。
关于“如何通过 Xtrabackup 日志来恢复检查点文件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。