数据库备份工具Xtrabackup

    Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,是一款开源能够对innodb和xtradb数据库进行热备的工具。

1、安装

        yum install  percona-xtrabackup -y

2、创建数据库

        create database test;

        use test;

        create table bak(id int ,name char(20));  创建表

        insert into bak values(1,'dog');

3、建立一个权限较小的用户管理数据库,尽量不要用root

        grant reload,lock tables, replication client on *.* to 'user'@'localhost' identified by 'centos';

       (1) reload   允许执行的命令 flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload

    (2)必须拥有lock tables权限,才可以使用lock tables

        (3)授予复制账号replication client权限,复制用户可以使用show master status, show slave status 和 show binary logs 

 4、完整备份

        innobackupex --user=user  --password=centos /backup/ 

        68fab3a4ac06ab14b4ebef7ea42b71af.png

5、在数据库中插入数据

        use test;

        insert into bak values(2,'cat');

        insert into bak values(3,'pig');

6、进行增量备份

    innobackupex --incremental /backup/ --incremental-basedir=/backup/2017-11-16_16-37-22

      解释:/backup/ 指定备份目录

              --incremental-basedir  指定在哪的基础上增量备份。   

7、数据恢复准备

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态“准备”(prepare)增量备份与整理完全备份有着一些不同,尤其要注意的是:

(1)需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”。“重放”之后,所有的备份数据将合并到完全备份上。

    (2)基于所有的备份将未提交的事务进行“回滚”。

   例如:当拷贝数据库时有些数据还没有写入磁盘。

    cd /backup

  首先完全备份      innobackupex --apply-log --redo-only 2017-11-16_16-37-22    
 然后增量备份    innobackupex --apply-log --redo-only 2017-11-16_16-37-22  --incrementaldir=2017-11-16_16-43-47    需指定完全备份目录和增量目录

8、测试恢复数据

    (1)不小心删除数据库文件   

    b8a1528b0eebcf5fe0e1e0dd8bc4e813.png

       或者 rm -rf *,如果仅仅只是删除其中一个库,需要做下面操作 

    (2)恢复

            innobackupex --copy-back /backup/2017-11-16_17-39-43/

     a7a7cfb3a9d898b772e8e3a669abb6b6.png

 (3)cd  /var/lib

         cp -a mysql  mysql.bak

         rm -rf mysql 删除mysql文件夹

           mkdir mysql 

           cd mysql

           innobackupex --copy-back /backup/2017-11-16_17-39-43/ 恢复数据

            a3b1857654a6d24db40d2b1269839696.png

     chown -R mysql.mysql mysql  修改/var/lmysql

            systemctl start mariadb

9、连接数据库查看文件恢复 

       b3df3e12d7067d58afaff9196d98535d.png   


         


本文转自 hawapple 51CTO博客,原文链接:http://blog.51cto.com/guanm/1982599


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值