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