mysql备份工具xtr_mysql-xtrbackup备份与恢复

mysql-xtrbackup备份与恢复

★简介:

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

★特点:

・ 物理备份,备份过程快速、可靠;

・ 备份过程不会打断正在执行的事务;

・ 能够基于压缩等功能节约磁盘空间和流量;

・ 自动实现备份验;

・ 还原速度快;

★支持的存储引擎功能:

・ MyISAM:温备,不支持增量备份;

・ InnoDB:热备,增量;

zxb    IP:10.0.0.128

zxb2  IP:10.0.0.129

操作:

两台机下载xtrbackup,并安装;

[root@zxb ~]# wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.8/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm

[root@zxb ~]# yum install -y percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm

开启二进制日志(备份机器);

[root@zxb ~]# cat /etc/my.cnf

[mysqld]

log-bin=/etc/mysql/mysql-bin

一、全量备份:

1.首先在zxb创建备份目录,给权限;

[root@zxb ~]# mkdir  -p /data/backup/

[root@zxb ~]# chown -R mysql:mysql /data/backup

2.创建数据库;

MariaDB [(none)]> create database allbackup;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

|

allbackup

|

| mysql              |

| performance_schema |

| zabbix             |

+--------------------+

5 rows in set (0.00 sec)

3.导入数据库数据

[root@zxb ~]# innobackupex -uroot -p0 /data/backup

。。。

171108 17:22:40 completed OK!

[root@zxb ~]# cd /data/backup/2017-11-08_20-41-09/

[root@zxb 2017-11-08_20-41-09]# cat xtrabackup_binlog_info

mysql-bin.000007    1216

4.拷贝数据到对端目录,首先创建目录;

[root@zxb2 ~]# mkdir  /backup_data/

[root@zxb2 ~]# chown -R mysql:mysql /backup_data/

[root@zxb 2017-11-08_20-41-09]# scp -r * zxb2:/backup_data/

5.准备一个数据,保证数据没有提交或则回滚的事物;

[root@zxb2 ~]# innobackupex --apply-log /backup_data/

''''

171108 20:53:40 completed OK

##--apply-log:回滚日志

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

6.暂停mysql服务器,修改/etc/my.cnf,直接恢复后启动服务;

[root@zxb2 ~]# systemctl stop mariadb

[root@zxb2 ~]# cat /etc/my.cnf

[mysqld]

datadir=/backup_data

[root@zxb2 ~]# innobackupex --copy-back /backup_data/

171108 20:56:42 innobackupex: Starting the copy-back operationIMPORTANT: Please check that the copy-back run completes successfully.

At the end of a successful copy-back run innobackupex

prints "completed OK!".innobackupex version 2.4.8 based on MySQL server 5.7.13 Linux (x86_64) (revision id: 97330f7)

Original data directory /backup_data is not empty!

[root@zxb2 ~]# systemctl start mariadb

7.查看数据是否同步;

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

|

allbackup

|

| mysql              |

| performance_schema |

| zabbix             |

+--------------------+

5 rows in set (0.00 sec)

二、增量备份:

1.操作命令:

第一次增量备份;

innobackupex --incremental /zl1(增量备份目录1) --innobackupex-basedir=BASEDIR(全备目录)

第二次增量备份;

innobackupex --incremental /zl2(增量备份目录1) --innobackupex-basedir=zl1(增量备份目录2)

第一次增量备份:

创建两个增量目录;

[root@zxb ~]# mkdir /data/backup_zl1

[root@zxb ~]# mkdir /data/backup_zl2

2.进入数据库,增加数据;

MariaDB [(none)]> use allbackup;

Database changed

MariaDB [allbackup]> select * from increment;

+------+-------+

| id   | name  |

+------+-------+

|    1 | test  |

3.开始增量备份;

[root@zxb ~]# innobackupex -uroot -p0 --incremental /data/backup_zl1 --incremental-

basedir=/data/backup/2017-11-08_21-08-56/

。。。

171108 21:14:00 completed OK!

4.拷贝数据到对端目录,首先创建目录;

[root@zxb2 ~]# mkdir /zl1

[root@zxb2 ~]# mkdir /zl2

[root@zxb2 ~]# chown -R mysql:mysql /zl1

[root@zxb2 ~]# chown -R mysql:mysql /zl2

[root@zxb ~]# scp -r /data/backup_zl1/* zxb2:/zl1/

5.停止服务,首先恢复完整数据,再合并第一个增量到完全备份里面;

##--redo-only:回滚合并

[root@zxb2 ~]# systemctl stop mariadb

[root@zxb2 ~]# innobackupex --apply-log  --redo-only /backup_data/

[root@zxb2 ~]# innobackupex -uroot -p0 --apply-log --redo-only /backup_data/

--incremental-dir=/zl1/backup_zl1/2017-11-08_22-30-37/

6.在全备目录下恢复;

[root@zxb2 ~]# innobackupex -uroot -p0 --copy-backup /backup_data/

7.启动服务,查看数据;

[root@zxb2 ~]# systemctl start mariad

MariaDB [(none)]> use allbackup;

Database changed

MariaDB [allbackup]> select * from increment;

+------+-------+

| id   | name  |

+------+-------+

|    1 | test  |

第二次增量备份:

1.进入数据库,增加数据;

MariaDB [(none)]> use allbackup;Database changed

MariaDB [allbackup]> select * from increment;

+------+-------+

| id   | name  |

+------+-------+

|    1 | test  |

|    2 | test2 |

2.开始增量备份;

[root@zxb ~]#  innobackupex -uroot -p0 --incremental /data/backup_zl2 --incremental-

basedir=/data/backup_zl1/2017-11-08_22-30-37/

3.拷贝数据到对端目录;

[root@zxb ~]# scp -r /data/backup_zl2/ zxb2:/zl2

4.停止服务,首先恢复完整数据,再合并第二个增量到完全备份里面;

[root@zxb2 ~]#  innobackupex --apply-log  --redo-only /backup_data

[root@zxb2 ~]# innobackupex -uroot -p0 --apply-log --redo-only /backup_data/

--incremental-dir=/zl2/backup_zl2/2017-11-08_23-07-21/

5.在全备目录下恢复;

[root@zxb2 ~]# innobackupex -uroot -p0 --copy-backup /backup_data/

6.启动服务,查看数据;

MariaDB [allbackup]> select * from increment;

+------+-------+

| id   | name  |

+------+-------+

|    1 | test  |

|    2 | test2 |

总结:经常会遇到mysql启动不了,通常是由于权限问题,或者配置文件配置问题;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值