• 用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

      

    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);

      

    4、执行备份;

      mkdir -p /data/backup/full

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

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

      也可以加上 --host参数;

      

      可看到已经备份完成;

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

      

      

      /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

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

    7、添加权限

      

    8、启动mysql

      [root@saltstack ~]# systemctl start mysqld

    9、验证是否成功

      

      

      至此还原完成;

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

        

  • 相关阅读:
    css深入理解absolute
    CSS深入理解float
    SpringBoot连接Oracle
    Oralce分页
    ps
    VUE基本安装
    JAVA运行war包
    MYSQL数据库事务隔离级别
    如何设计一个关系型数据库
    省选模拟22
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/10281968.html
Copyright © 2020-2023  润新知