针对MySQL全库备份设计如下:
1.在本地实例中创建backinfo.backupinfo表,在备份开始前记录开始时间,备份结束后记录结束时间,开始时间可用于恢复校验;
2.创建远端实例和backinfo.backupinfo表,同上,集中记录多个MySQL实例备份的相关信息,包括备份开始时间,结束时间,备份文件大小,rsync传输时间等,便于观察历史情况;
3.备份过程中,利用xtrabackup的流式备份,边备份边压缩,备份结束后,传输至备份服务器统一存放;
4.本地创建相关日志文件,记录备份过程输出信息,用于备份异常排查;
5.备份服务器上对备份文件进行恢复演练,利用第一点记录的备份时间,可以校验备份的有效性和一致性,恢复脚本不在本篇范围内。
backupinfo表结构:
Create Table: CREATE TABLE `backupinfo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(20) DEFAULT NULL,
`beginbackup` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`endbackup` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`file_size` varchar(10) DEFAULT NULL,
`endrsync` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',