默认情况下, 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