全量備份恢復
事件發生後停止後端服務,同時重新整理資料庫二進位制日誌,防止有新資料
kill -9 後端服務埠
mysql -u -p
flush logs;
重新整理後的binlog的id為00004,需要恢復的資料都是00003
mysql -uroot -p
source /備份檔案地址
全量備份恢復完成,剩下的資料可根據binlog日誌進行恢復
增量備份恢復
根據00003的時間恢復指定資料庫的資料
mysqlbinlog --no-defaults --database=ecology ./mysql-bin.000003 --start-datetime="2024-06-18 15:21:00" --stop-datetime="2024-06-18 15:22:00" --skip-gtids |mysql -uroot -p123456 ecology
根據position恢復
mysqlbinlog --no-defaults --database=ecology ./mysql-bin.000003 --start-position=55217 --stop-position=115972 --skip-gtids|mysql -uroot -pH_zhan#888 ecology
我這裡是主從複製環境,透過模擬testa庫刪除後恢復資料,恢復資料的時候先建立testa的空庫,進入庫中匯入,然後根據二進位制日誌,對備份檔案之後產生的資料進行恢復,--skip-gtids這個是需要新增的,否則不生效,應該是自己建立庫的原因