码迷,mamicode.com
首页 > 数据库 > 详细

数据库备份工具Xtrabackup

时间:2017-11-16 22:04:53      阅读:205      评论:0      收藏:0      [点我收藏+]

标签: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/ 

        技术分享

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)不小心删除数据库文件   

    技术分享

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

    (2)恢复

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

     技术分享

 (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/ 恢复数据

            技术分享

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

            systemctl start mariadb

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

       技术分享   


         

本文出自 “Linux 学习记录” 博客,请务必保留此出处http://guanm.blog.51cto.com/13126952/1982599

数据库备份工具Xtrabackup

标签:xtrabackup   数据库备份   数据库恢复。   

原文地址:http://guanm.blog.51cto.com/13126952/1982599

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!