MySQL5.5复制新特性
一.MySQL5.5复制改进
MySQL5.5版本对MySQL Replication进行了多项的改良,以提供数据的完整性,性能和应用灵活性更高水平。
1.Semisynchronous Replication:主从之间的等待机制
2.Slave fsync tuning:调整slave fsync包括sync-master-info,sync-relay-log,sync-relay-log-info
3.Automatic relay log recovery:中继日志自动恢复
4.Replication Heartbeat:复制心跳检测
5.Per server replication filtering:复制过滤
6.Precise slave type conversions:slave精确类型转换
7.Individual log flushing:日志刷新
8.Safe logging of mixed transactions:事务和非事务存储引擎间的事务复制
通常每台slave对master的负载是1%。
 
二.复制类型
1.异步复制:
异步复制是指数据从一台计算机复制到另一台,在实际的复制过程中数据的变化造成的延误。通常,这种延迟是由网络带宽,资源可用性和系统负荷造成的。
2.同步复制:
MySQL的InnoDB或MyISAM存储引擎本身并不支持同步复制。DRBD技术,提供了基于的文件系统同步复制。
3.不完全的同步复制(Semisynchronous Replication):
这是MySQL5.5的新特性。如果master启用semisynchronous复制,那么至少有一个slave配置semisynchronous。一个线程在master端执行一个事务提交后,
等待直到至少有一个semisynchronous  slave向master返回它已经收到所有事务的确认或超时。一旦超时,master依然提交事务,但是返回到异步模式下。
 
三.迁移到Semisynchronous Replication模式
1.在master和slave端安装插件
M>INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so’;
S>INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so’;
2.开启
M>SET GLOBAL rpl_semi_sync_master_enabled = on;
S>SET GLOBAL rpl_semi_sync_slave_enabled = on;
S>STOP SLAVE IO_THREAD;
S>START SLAVE IO_THREAD;
查看Semisynchronous Replication是否运行和有多少slave是以Semisynchronous模式连接master:
M>SHOW STATUS LIKE ‘Repl_semi_sync_master_STATUS;
M>SHOW STATUS LIKE ‘Repl_semi_sync_master_clients;
3.确认复制运行在Semisynchronous模式下
M>SHOW STATUS LIKE ‘Repl_semi_sync_master_yes_tx’;