此次实验的环境如下
MySQL 5.7.25
Redhat 6.10
操作系统账号:mysql
数据库备份账号:backup
上节我们介绍了如何使用innobackupex对数据库进行全备
结束后我们得到了一个非一致性的备份文件,即需要对未提交的事务进行回滚以及对提交的事务进行前滚
这个过程在xtrabackup中叫做准备阶段(prepare stage)
这个阶段完成后该备份文件就可被使用
使用--apply-log进行恢复动作,相当于Oracle的recover动作
后面接全备的目录
如果内存有空闲,可使用--use-memory加快速度
innobackupex --apply-log --use-memory =1G /oradata/data/mysql/xtra/2019-05-27_14-56-51
结束后会出现如下提示
150806 01:01:57 InnoDB: Shutdown completed; log sequence number 1609228 150806 01:01:57 innobackupex: completed OK!
这时数据文件处于一致状态,可供数据库使用
这个阶段我们使用--copy-back将prepare过的数据文件拷贝至需要还原的服务器的datadir目录
我们需要注意如下几点
innobackupex --copy-back /oradata/data/mysql/xtra/2019-05-27_14-56-51
如何磁盘空间不大,我们可以使用--move-back参数在拷贝完成后删除备份文件(文件目录仍保留)
同样结束后会显示completed OK字样
最后datadir的文件如下图
首先我们需要注意下文件的权限,如果不是使用mysql账号执行的备份和恢复,首先要更改权限
$ chown -R mysql:mysql /var/lib/mysql
最后我们启动数据库即可
service mysqld start
到这里我们完成使用innobackupex进行完全备份和还原
本专题所有内容翻译子Percona XtraBackup的官方文档
可通过如下链接下载 http://www.zhaibibei.cn/mysql/xtrabackup/tutorial1/