十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
binlog,二进制日志,记录mysql所有操作命令。
成都创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元镇宁做网站,已为上家服务,为镇宁各地企业和个人服务,联系电话:13518219792
可以用来做数据恢复,同时也是mysql主从备份所必需的日志。
用 mysqlbinlog 命令可以直接打开binlog查看。
cd d:\program files\mysql\data
mysqlbinlog -d test --start-datetime="2004-12-25 11:25:56" --stop-datetime="2012-12-26 11:25:56" --base64-output=DECODE-ROWS mysql-bin.000001 mysql-bin.00000n e:\t.sql
1 说明:
这是输出日志为可执行的sql格式,然后通过mysql或其它工具执行这个sql即可
-d test 是指定数据库,如果要导出全部数据库的执行语句,去年该选项
--base64-output=DECODE-ROWS 是为了适应mysql server设置binlog_format=row的情况的,一般使用该值即可;
mysql-bin.000001 mysql-bin.00000n 把你的bin文件名全部列出来,有几个列几个(linux下可以使用通配符 mysql-bin.[0-9]*)
--start-datetime 这是为了设定恢复的时间段的,如你只需精确地导出某天的执行
当启动Binlog后,事务会产生Binlog Event,这些Event被看做事务数据的一部分。因此要保证事务的Binlog Event和InnoDB引擎中的数据的一致性。所以带Binlog的CrashSafe要求MySQL宕机重启后能够保证:
- 所有已经提交的事务的数据仍然存在。
- 所有没有提交的事务的数据自动回滚。
- 所有已经提交了的事务的Binlog Event也仍然存在。
- 所有没有提交事务没有记录Binlog Event。
这些要求很好理解,如果重启后数据还在,但是Binlog Event没有了,就没办法复制到其他节点上了。如果重启后,数据没了,但是Binlog Event还在,那么不存在的数据就会被复制到其他节点上,从而导致主从的不一致。
为了保证带Binlog的CrashSafe,MySQL内部使用的两阶段提交(Two Phase Commit)。