Percona XtraBackup 备份和还原数据库

来源:互联网 发布:遗传算法的书籍 编辑:程序博客网 时间:2024/05/30 05:40

一、Percona XtraBackup 备份原理

1、完全备份
这里写图片描述
2、增量备份
这里写图片描述
3、数据还原备份
这里写图片描述

二、Percona XtraBackup 剖析

1、全备
这里写图片描述

2、增量备份
这里写图片描述

三、Percona Xtrabackup的基本操作

1、Percona Xtrabackup的安装
(1)下载Xtracbackup软件(我的这个是el7平台的)

https://pan.baidu.com/s/1i5OSx7Z      #这个是我自己的云盘地址官网:https://www.percona.com/

(2)安装依赖包及软件

[root@linux-node2 ~]# yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL[root@linux-node2 ~]# rpm -ivh libev-4.15-6.el7.x86_64.rpm[root@linux-node2 ~]# rpm -ivh percona-xtrabackup-2.3.4-1.el7.x86_64.rpm

2、Percona Xtrabackup的备份还原数据

(1)完全备份[root@linux-node2 ~]# grep "datadir" /etc/my.cnf    #查看数据目录所在的位置datadir=/usr/local/mysql/data[root@linux-node2 ~]# innobackupex --user=root --password=123 /tmp/mysql-backup/[root@linux-node2 ~]# ls /tmp/mysql-backup/    #查看全备份的内容2017-10-17_13-08-59

(2)增量备份

[root@linux-node2 ~]# innobackupex --user=root --password=123 --incremental /tmp/mysql-backup/ --incremental-basedir=/tmp/mysql-backup/2017-10-17_13-08-59/[root@linux-node2 ~]# innobackupex --user=root --password=123 --incremental /tmp/mysql-backup/ --incremental-basedir=/tmp/mysql-backup/2017-10-17_13-12-19/[root@linux-node2 ~]# ls /tmp/mysql-backup/2017-10-17_13-08-59  2017-10-17_13-12-19  2017-10-17_13-13-13

这里写图片描述

(3)还原数据
①停止mysql服务,然后清空数据文件目录,恢复完成后再设置权限

[root@linux-node2 ~]# systemctl stop mysql[root@linux-node2 ~]# mv /usr/local/mysql/data /usr/local/mysql/data.bak     #这个是模拟不小心将数据删掉[root@linux-node2 ~]# mkdir /var/lib/mysql/data[root@linux-node2 ~]# chown mysql. /usr/local/mysql/data -R

②还原数据

[root@linux-node2 ~]# innobackupex --apply-log --redo-only /tmp/mysql-backup/2017-10-17_13-08-59/    #读取全备份的事务日志,不回滚[root@linux-node2 ~]# innobackupex --apply-log --redo-only /tmp/mysql-backup/2017-10-17_13-08-59/  \--incremental-dir=/tmp/mysql-backup/2017-10-17_13-12-19/  #将第一次增量备份的事务日志导入到读取全备份的事务日志中,不回滚[root@linux-node2 ~]# innobackupex --apply-log --redo-only /tmp/mysql-backup/2017-10-17_13-08-59/  \--incremental-dir=/tmp/mysql-backup/2017-10-17_13-13-13/  #将第二次增量备份的事务日志导入到读取全备份的事务日志中,不回滚[root@linux-node2 ~]# innobackupex --apply-log /tmp/mysql-backup/2017-10-17_13-08-59/      #回滚事务日志[root@linux-node2 ~]# innobackupex --copy-back /tmp/mysql-backup/2017-10-17_13-08-59/      #还原数据[root@linux-node2 ~]# chown mysql. /var/lib/mysql/data -R   #修改权限[root@linux-node2 ~]# systemctl start mysql  #启动服务
原创粉丝点击