当前位置:Gxlcms > 数据库问题 > 通过Xtrabackup实现MySQL实例的全库备份与按需单库恢复

通过Xtrabackup实现MySQL实例的全库备份与按需单库恢复

时间:2021-07-01 10:21:17 帮助过:3人阅读

 在实际的生产环境中,为了管理方便,我们一般是通过 Xtrabackup实现实例的全库备份,即将实例上的所有数据库备份。

但是,考虑到快速恢复 我们常常面临的需求是快速还原单个数据库。针对初学者来说,网上相关的资料不是很多,以下的测试工作是我们为实现实例的全库备份与按需单库恢复的相关验证。

 

第一部分数据库测试环境

 

Step 1创建 四个用户数据库

技术分享图片

技术分享图片

技术分享图片

技术分享图片

Step2 四个数据库创建相同的表,插入同样的数据。

执行的代码一样

CREATE TABLE `test` (                                 

          `id` int(11) NOT NULL AUTO_INCREMENT,               

          `str` varchar(255) NOT NULL,                                    

          `state` tinyint(1) unsigned zerofill DEFAULT NULL,  

          `state2` tinyint(2) unsigned zerofill DEFAULT NULL, 

          `state3` tinyint(3) unsigned zerofill DEFAULT NULL, 

          `state4` tinyint(4) unsigned zerofill DEFAULT NULL, 

          PRIMARY KEY (`id`)                                  

        ) 

 

insert into test (str,state,state2,state3,state4) values(‘csdn‘,4,4,4,4);

 

step 3 显示验证前所有数据库

技术分享图片

表数据查询显示

技术分享图片

 

第二部分 主要测试步骤和执行命令

 

Step 1 执行备份命令:

技术分享图片

 

(innobackupex  --defaults-file=/data/mysql/support-files/my_default.cnf  --user=用户 --password=密码 /data/backup/full)

备份目录为: /data/backup/full

Step 2 关闭数据库并删除数据库文件

技术分享图片

技术分享图片

Step 3 将备份目录中不需要的数据备份文件迁移出去

 (本验证案例为 数据库testaa,testbb,testcc )

 技术分享图片

技术分享图片

Step 4 执行恢复命令

技术分享图片

(命令如下:innobackupex --defaults-file=/data/mysql/support-files/my_default.cnf  --user=用户 --password=密码 --copy-back  /data/backup/full/2018-04-03_09-42-58

查询结果OK

技术分享图片

Step 5 赋予权限

技术分享图片

(如果不赋予权限,报错信息:Starting MySQL... ERROR! The server quit without updating PID file (/XXXX/XXXX/XXX/XXXX.pid). 还要留意,需要先还原,让后再赋予权限)

Step 6 重启mysql 服务

技术分享图片

 

第三部分数据验证

 

1.还原后,查询显示所有的数据,可以看到 数据库testaa,testbb,testcc没有还原。

技术分享图片

2.查询还原的数据库,数据正常,和还原前无差异。

技术分享图片

 

以上验证测试说明,可以在数据库全实例备份的基础上实现指定数据库的还原。

通过Xtrabackup实现MySQL实例的全库备份与按需单库恢复

标签:err   需要   arc   value   tin   网上   test   没有   auto   

人气教程排行