本篇講備份的恢復
備份見上篇: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腳本實現數據庫備份與同步。