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

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

九、验证是否成功

  

  

  至此还原完成;

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

相关文章
相关标签/搜索