MySQL備份恢復之mysqldump恢復

mysqldump恢復
mysqldump恢復

恢復備份+binlog

示例:
1.做好了對於test庫的備份在這裏插入圖片描述2.做好備份以後,又做了幾個操作
(1)往test庫的t1表插入了幾行數據在這裏插入圖片描述(2)將t1表誤刪除在這裏插入圖片描述(3)新建表,插入數據在這裏插入圖片描述在這裏插入圖片描述3.當前的場景是數據庫大約在九點做了一個備份,有一個表t1大約在上午11點被誤刪除,然後新建的一個表ceshi,並且有數據插入,要求將t1表找回來,況且ceshi表不能丟失
(1)確定表t1刪除的時間,進入數據目錄查看binlog在這裏插入圖片描述(2)我們發現在server.000021中找到了刪除表t1的操作;將server.000021導出到.sql文件中在這裏插入圖片描述(3)查看t1.sql,找到刪除表t1的位置 vim t1.sql在這裏插入圖片描述
可以看到binlog的位置775到890,當恢復的時候將這一部分去掉
(4)將775-900位置的binlog刪除
[root@mysql1 mysql]# mysqlbinlog -vv server.000021 --stop-position=775 > t1_1.sql
//提取775之前的binlog日誌
#[root@mysql1 mysql]# mysqlbinlog -vv server.000021 --start-position=890 > t1_2.sql
#//提取890之前的binlog日誌

注:mysqlbinlog儘量使用絕對路徑

(5)mysql -uroot -p123 test </tmp/test.sql 恢復備份數據
mysql -uroot -p123 test< t1_1.sql
#mysql -uroot -p123 test<t1_2.sql //將截取出的binlog日誌恢復

mysqldump恢復幾個重要的點
1.確定表被刪除的時間
使用binlog最後修改時間來確認每一個binlog裏面的日誌時間段
結合mysqlbinlog -vv| grep -C 20 來確定具體的時間點
2.截取最後一個binlog對應的時間段
3.確定備份開始的時間點,找到對應的binlog,如果使用了-F,很容易確定備份的起點,使用文件建立時間和文件大小
4.直接進行恢復
5.追加binlog進行恢復

邏輯備份最大的問題
1.不容易確定備份的起點,也就是binlog需要恢復的起點
2.恢復速度慢,因爲是單線程恢復
3.myisam表需要鎖表
4.備份速度慢

邏輯備份主要用來導數

補充;如何查看主外鍵的引用在這裏插入圖片描述看圖得出t14表引用的t12的主鍵
驗證:在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章