標籤:二進位 線上 mysql 資訊 切割
1、先進行二進位檔案的切割
因為是線上恢複,所以二進位檔案在恢複的時候也會將恢複過程寫入到裡面,所以,先進行二進位檔案的切割
shell >mysqladmin -h 127.0.0.1 -uroot -poracle flush-log
可以看到,原來只有mysqlbin_test.000001、mysqlbin_test.000002
、mysqlbin_test.000003,切割之後有了mysqlbin_test.000004,這樣在恢複的時候就不會影響到之前的二進位檔案(原因:因為通過備份檔案只能恢複到備份時間點的資料,但是,從備份時間點到資料損毀之前的資料沒有辦法進行恢複的,所以我們採用切割的方式將二進位檔案切割,再將原來的二進位檔案通過mysqlbinlog轉換成sql檔案,更改sql檔案中的資訊使得更新到損壞時間點之前的資料情況)
2、通過備份檔案進行恢複
shell >mysql -h 127.0.0.1 -uroot-poracle test123 </opt/test123_bak.sql
3、檢查資料是否進行恢複(我們主要是想恢複test123中的test表中的內容)
shell> mysql -h 127.0.0.1 -uroot-poracle -e “select * from test123.test”
4、通過mysqlbinlog將二進位檔案進行轉換,進入到data目錄
shell >mysqlbinlog -d testmysqlbin_test.000001 >bin_test01.sql
其中-d是指定涉及到的表
shell >mysqlbinlog -d testmysqlbin_test.000002 >bin_test02.sql
shell >mysqlbinlog -d testmysqlbin_test.000003 >bin_test03.sql
5、如果有錯誤操作,將最新的二進位sql檔案即bin_test03.sql中的錯誤操作sql語句刪除vi bin_test03.sql,一般應該在最後。之後,進行恢複
vi bin_test03.sql
6、進行二進位檔案恢複
mysql -h 127.0.0.1 -u root -poracletest123 </data/bin_test01.sql
mysql -h 127.0.0.1 -u root -poracletest123 </data/bin_test02.sql
mysql -h 127.0.0.1 -u root -poracletest123 </data/bin_test03.sql
本文出自 “技術博” 部落格,謝絕轉載!
MySQL系列之F-3------MySQL恢複