用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中包含坐标位置]。如
host_name
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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步