本篇讲备份的恢复
备份见上篇:xtrabackup进行数据库备份
当我们进行了一次全备份之后,会在备份目录生成时间戳命名的一个备份文件
此备份文件下包括:backup-my.cnf、xtrabackup_checkpoints等备份的配置文件和已经备份过来的数据库文件。
恢复步骤:
1.将要恢复的机器上mysql服务停掉:
[root@xtrabackup ~]# mysqladmin -uroot -p shutdown
可以ps看下是否停止:
[root@xtrabackup ~]# ps -ef|grep mysql
2.将mysql数据目录移除:
这一步的目的是:备份的时候xtrabackup会记录该目录的位置,如果在恢复的时候data目录存在且不为空,恢复会报错。
*超级不建议使用rm -rf 删除
[root@xtrabackup ~]# mv /home/mysql/data /home/mysqlbak
3.进行prepare,执行如下命令:
[root@xtrabackup ~]# innobackupex --apply-log --redo-only /home/mysqlbackup/backup/2020-05-28_11-29-06/
4.执行全部恢复:
[root@xtrabackup ~]# innobackupex --defaults-file=/etc/my.cnf --copy-back /home/mysqlbackup/backup/2020-05-28_11-29-06/
看到completed OK!,恢复成功
5.修改新文件权限:
[root@xtrabackup ~]# chown mysql:mysql -R /data/mysql_data
6.重启mysql服务:
[root@xtrabackup ~]# mysqld &
可以看到,数据库已经恢复:
至此,数据库恢复完成。
PS:现在正在做shell脚本,准备将数据库备份与同步自动化,下篇更新xtrabackup专栏应该是shell脚本实现数据库备份与同步。