Percona XtraBackup 备份和还原数据库

数据库 waitig 894℃ 百度已收录 0评论

一、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  #启动服务

本文由【waitig】发表在等英博客
本文固定链接:Percona XtraBackup 备份和还原数据库
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)