用Mysqlbinlog備份BinLog文件


默認情況下, mysqlbinlog讀取二進制文件【BinLog】並以文本的方式呈現【text format】.mysqlbinlog可以直接地從本地讀取Log,也可以讀取遠程的Log【--read-from-remote-server】,默認是直接輸出,當然也可以保存到指定的輸出文件中。如:

1.顯示有哪些Log文件:

show binary logs;如:

2.Load指定的文件,如 mysqlbinlog --read-from-remote-server --host=host_name --user=user_name --password=user_password --raw  binlog.000002 binlog.000003 [多個用空格分開] 【如果要Dump到指定位置,需要加 --result-file=/var/log/】

也可以Dump從某文件開始的所有BinLog文件,如

 mysqlbinlog --read-from-remote-server --host=host_name --user=user_name --password=user_password --raw --to-last-log binlog.000002[會Load 自000002之后的所有Log文件]

這時如果你想不間斷的Load binLog文件,即保持連接不斷地從Server上拷貝新的Log文件。

mysqlbinlog --read-from-remote-server --host=host_name --user=user_name --password=password --raw --to-last-log binlog.000002 --stop-never

也可以使用mysqldump來創建一個Dump文件【作為當前ServerData的一個快照】。在生成快照時,要使用--all-databases[如果要Dump所有庫],--events[事件],

--routines 同時要--master-data=2[在BinLog中包含坐標位置]。如

mysqldump --host=host_name --all-databases --events --routines --master-data=2> dump_file

 一旦數據丟失,你可以使用Dump文件來恢復,如 mysql --host=host_name -uroot -p < dump_file

然后可以使用備份的BinLog文件找回丟失數據【重做備份之后的數據】

假設數據的BinLog的位置為: File=binLog.001002  Pos=27284

mysqlbinlog --start-position=27284 binlog.001002 binlog.001003 binlog.001004 [這只是輸出]

要想重做需使用CHANGE MASTER TO 語句。也請參考:

18.1.3.3 Using GTIDs for Failover and Scaleout

還原Error:http://www.cnblogs.com/zhoujinyi/p/4717951.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM