xtrabackup包含两个主要的工具,即xtrabackup和innobackupex,两者区别以下:html
(1)xtrabackup只能备份innodb和xtradb两种引擎的表,而不能备份myisam引擎的表;mysql
(2)innobackupex是一个封装了xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时须要加一个全局的读锁。还有就是myisam不支持增量备份。sql
一、确保xtrabackup已经安装;数据库
我另外一篇文章介绍了安装过程:https://www.cnblogs.com/weiyiming007/p/10281820.html工具
二、建立四个测试库:testaa testbb testcc testdd测试
三、在四个数据库中建立相同的表,插入一样的数据(四个数据库都执行);3d
mysql> create table test(id int,id1 int,id2 int,id3 int);htm
mysql> insert into test(id,id1,id2,id3) values(1,2,3,4);blog
四、执行备份;innodb
mkdir -p /data/backup/full
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /data/backup/full
/data/backup/full:备份数据存放目录
也能够加上 --host参数;
可看到已经备份完成;
五、关闭数据库并删除数据库文件
/var/lib/mysql/:是个人数据库存放目录
六、恢复
[root@saltstack ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /data/backup/full/2019-01-17_14-00-54
--copy-back :把完整备份文件拷贝到目标目录,由--defaults-file指定的my.cnf里设置决定;
七、添加权限
八、启动mysql
[root@saltstack ~]# systemctl start mysqld
九、验证是否成功
至此还原完成;
我这个实验是还原的整个数据目录,也能够还原部分数据,作法就是在恢复以前,把备份目录中不想恢复的数据库移走,而后再恢复就能够了;