<强> binlog的三种模式强>
<强>声明模式强>
特点:
(1)此模式不支持俄文,RC隔离级别;
(2) binglog日志文件中上一个事物的结束点是下一个事物的开始点;
(3) DML、DDL语句都会明文显示;
(4)对一些系统函数不能准确复制或者不能复制,如load_file (), uuid()、用户(),found_rows (), sysdate(),注意(现在()可以复制;)
(5)主库执行删除从t1 c1=xxx限制1,声明模式下,从库也会这么执行,可能导致删除的不是同一行数据
(6)主库有id=1和id=10两行数据,从库有id=1, 2, 3, 10这四行数据,主库执行删除从t1 id<10命令,从库删除过多数据;
什么场景会用模到声明式:
(1)一次更新大量数据,如二十万数据,否则在复制的时候,从库可能会追的太慢,导致延时;
(2)使用pt-table-checksum工具时会使用模到声明式;
例1: set , tx_isolation=翱芍馗炊寥 ? set , binlog_format=吧鳌? flush 原木; create table  t10 (c1 int, c2 varchar (50)); insert into  t10 价值(1,现在()); insert into  t10 价值(2,现在()); insert into  t10 价值(3,sysdate ()); insert into  t10 值(4,uuid ()); update t10  set c2=癰bb, where c1=1; 【root@Darren2 日志】#,mysqlbinlog mysql-bin.000022 …… create table  t10 (c1 int, c2 varchar (50)) 开始/* ! */; # at 532 # 170408,14:40:49 server  id 330622,, end_log_pos 649年,CRC32 0 xe5cfc853 ,,,,,,, Query  thread_id=55岁,,,,exec_time=0,,,,, error_code=0 SET 时间戳=1491633649/* ! */,,,,先设置时间戳,从库复制的时候也会执行这条SQL,这就是现在()函数为什么可以复制的原因 insert into  t10 值(1,现在()),,,,, insert into  t10 值(2,现在()) insert into  t10 价值(3,sysdate ()) insert into  t10 值(4,uuid ())/* ! */; # at 1550 # 170408,14:40:49 server  id 330622,, end_log_pos 1581年,CRC32 0 x5aaa5377 ,,, Xid =1755 提交/* ! */; # at 1581 # 170408,14:40:49 server  id 330622,, end_log_pos 1646年,CRC32 0 xc2da517f ,,, GTID ,,, last_committed=5,,,,,,,, sequence_number=6 SET @@SESSION.GTID_NEXT=,“83373570 - fe03 - 11 - e6 bb0a - 000 c29c1b8a9:11328“/* ! */; # at 1646 # 170408,14:40:49 server  id 330622,, end_log_pos 1729年,CRC32 0 x943df058 ,,, Query ,, thread_id=55岁,,,,exec_time=0,,,,, error_code=0 SET 时间戳=1491633649/* ! */; 开始/* ! */; # at 1729 # 170408,14:40:49 server  id 330622,, end_log_pos 1841年,CRC32 0 xb443cf1e ,,, Query ,, thread_id=55岁,,,,exec_time=0,,,,, error_code=0 SET 时间戳=1491633649/* ! */; update t10  set c2=癰bb, where c1=1/* ! */; # at 1841 # 170408,14:40:49 server  id 330622,, end_log_pos 1872年,CRC32 0 xd06c40f5 ,,, Xid =1756 提交/* ! */; SET @@SESSION.GTID_NEXT=,“自动”,/*,added by mysqlbinlog */,/* ! */; DELIMITER ; #,最终获得of log 文件/* ! 50003,SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE */;/* ! 50530,SET @@SESSION.PSEUDO_SLAVE_MODE=0 */; 主库: root@localhost [testdb]祝辞select *,得到t10; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + |,c1 ,, |, c2 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + |,,,,1,|,bbb ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, | |,,,,2,|,2017 - 04 - 08 -,14:40:49 ,,,,,,,,,,,,,,,, | |,,,,3,|,2017 - 04 - 08 -,14:40:49 ,,,,,,,,,,,,,,,, | |,,,,4,|,4 d76efa5 - 1 - c26 - 11 - e7 - bc58 - 000 c29c1b8a9 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 从库: root@localhost [testdb]祝辞select *,得到t10; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + |,c1 ,, |, c2 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, | null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullbinlog的三种模式