x backup mysql_用Xtrabackup实现MySQL全库备份与恢复

xtrabackup包含两个主要的工具,即xtrabackup和innobackupex,二者区别如下:

(1)xtrabackup只能备份innodb和xtradb两种引擎的表,而不能备份myisam引擎的表;

(2)innobackupex是一个封装了xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时需要加一个全局的读锁。还有就是myisam不支持增量备份。

1、确保xtrabackup已经安装;

我另一篇文章介绍了安装过程:https://www.cnblogs.com/weiyiming007/p/10281820.html

2、创建四个测试库:testaa  testbb  testcc  testdd

6c7939394838b89a6e47e8667caf578f.png

3、在四个数据库中创建相同的表,插入同样的数据(四个数据库都执行);

mysql> create table test(id int,id1 int,id2 int,id3 int);

mysql> insert into test(id,id1,id2,id3) values(1,2,3,4);

552af40b2ce3d8ea4f88e7013e9d7e69.png

4、执行备份;

mkdir -p /data/backup/full

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /data/backup/full

/data/backup/full:备份数据存放目录

也可以加上 --host参数;

ecb790031b9903923adb47dd400e1966.png

可看到已经备份完成;

5、关闭数据库并删除数据库文件

a2ffea9ca3344a0395e6dae38d70c594.png

66fcf76ae0a656ac4b98c2258f67c2a9.png

/var/lib/mysql/:是我的数据库存放目录

6、恢复

[root@saltstack ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /data/backup/full/2019-01-17_14-00-54

81d1f2e42c1328dde9c5f14a6ca8a6a6.png

--copy-back :把完整备份文件拷贝到目标目录,由--defaults-file指定的my.cnf里设置决定;

7、添加权限

c86cc90e42fb0b494bd171c9feb0cd63.png

8、启动mysql

[root@saltstack ~]# systemctl start mysqld

9、验证是否成功

fab101df094088244971a2ca1b709276.png

4c30e78d9fc0b2073a1373c56a292649.png

至此还原完成;

我这个实验是还原的整个数据目录,也可以还原部分数据,做法就是在恢复之前,把备份目录中不想恢复的数据库移走,然后再恢复就可以了;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值