默認情況下, 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