[my.cnf]binlog_format各种模式下的影响及处理

binlog_format=statement/row/mixed 
# AUTO_INCREMENT 
http://dev.mysql.com/doc/refman/5.5/en/replication-features-auto-increment.html 
推荐row/mixed 
statement不安全: 
-- AUTO_INCREMENT列上的trigger or function 使用新产生的自增值,主从不一致 
-- AUTO_INCREMENT列不是联合主键的第一列(myisam)时,主从不一致 
-- 表增加自增列时,主从的顺序可能不一致 
   解决办法:给t1表加自增列caid,按c1列排序 
   create table t2 like t1; 
   alter table t2 add column caid int auto_increment primary key; 
   insert into t2 (不含caid的所有列) select * from t1 order by c1; 

# Temporary Tables 
http://dev.mysql.com/doc/refman/5.5/en/replication-features-temptables.html 
row:不会被同步到从库 
statement/mixed: 会以STATEMENT形式同步到从库。测试未发现 
   参数: 
   无效:--replicate-do-db, --replicate-do-table, --replicate-wild-do-table 
   有效:--replicate-ignore-table、 --replicate-wild-ignore-table 
   隐患:未同步完,mysql stop或者服务器宕机(无法避免) 
         重启后,后续事务需要根据临时表内容进行操作时会出现异常 

note:mysql stop前检查 Slave_open_temp_tables 值若大于0,则等待为0时才stop



请使用浏览器的分享功能分享到微信等