MySQL 5.6同步复制新特性详解
继5.5半同步复制后,MySQL 5.6又对其进行了优化与改进,其中有两个地方较为重要:对运维人员来说应该是一件大喜的事情,在主从切
继5.5半同步复制后,MySQL 5.6又对其进行了优化与改进,其中有两个地方较为重要:
1、对运维人员来说应该是一件大喜的事情,在主从切换后,在传统的方式里,你需要找到binlog和POS点,然后change master to指向,而不是很有经验的运维,往往会将其找错,造成主从同步复制报错,在mysql5.6里,你无须再知道binlog和POS点,你只需要知道master的IP、端口,账号密码即可,因为同步复制是自动的,mysql通过内部机制GTID自动找点同步。
2、多线程复制基于库。之前的版本,同步复制是单线程的,队列的,只能一个一个执行,在5.6里,可以做到多个库之间的多线程复制,例如yourDB库里,存放着用户表,商品表,价格表,订单表,那么将每个业务表单独放在一个库里,,这时就可以做到多线程复制,但一个库里的表,多线程复制是无效的。
新的名词解释:
server_uuid:服务器身份ID。在第一次启动Mysql时,会自动生成一个server_uuid并写入到数据目录下auto.cnf文件里,官方不建议修改。
并且server_uuid跟GTID有密切联系。
[root@mysql5_6 data]# pwd
/usr/local/mysql/data
[root@mysql5_6 data]# cat auto.cnf
[auto]
server-uuid=b0869d03-d4a9-11e1-a2ee-000c290a6b8f
GTID:全局事务标识符。当开始这个功能时,每次事务提交都会在binlog里生成一个唯一的标示符,它由UUID和事务ID组成。首次提交的事务ID为1,第二次为2,第三次为3,依次类推。
查看binlog,会看到如下:
开启GTID时,slave在做同步复制时,无须找到binlog日志和POS点,直接change master to master_auto_position=1即可,自动找点同步。
下一篇: 笔记-迎难而上之Java基础进阶1