复制是单向的,只能从master复制到slave上,延时基本上是毫秒级别的。
一组复制结构中可以有多个slave,对于master一般场景推荐只有一个。
master用户写入数据,生成event记到binary log中
slave接收master上传来的binlog,然后按顺序应用,重现master上的用户操作。
记录最小的单位是一个event,日志前4个字节是一个magic number,接下来19个字节记录formatt desc event:FDE
MySQL5.6增加了GTID复制
要求:
1、 主库上线,主库不停止服务的前提下做主从复制
2、 新添加一个丛库
操作:
1、 在主库导出数据(主库正常运行);
2、 将主库的sql文件传到丛库;
3、 丛库恢复数据库;
4、 在主服务器上,创建复制账号,赋权限
Mysql > GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'3.9.8.%' IDENTIFIED BY 'replpass';
Mysql > flush privileges;
5、 配置从服务器的防火墙,允许防火墙通过3306端口
# vim /etc/sysconfig/iptables
添加
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
重启防火墙服务,使其生效
#service iptables restart
6、 丛库修改配置文件
# vim /etc/my.cnf
添加
7、 在从服务器上使用主mysql上创建的账号密码登录并进行复制
mysql> change master to master_host='3.9.8.13', master_user='repluser',master_password='replpass',master_auto_position=1;
8、 丛库启动主从复制(可能会报错,参考10.问题集1) )
mysql> start slave;
9、 检测主从复制
mysql> show slave status\G
10、 问题集
1) 启动主从复制,报错1872:slave failed to initialize relay log info structure from the repository.
mysql> reset slave; mysql> change master to master_host='3.9.8.13', master_user='repluser',master_password='replpass',master_auto_position=1; mysql> start slave;
以上就是mysql GTID主从复制详解的详细内容,更多请关注php中文网其它相关文章!
……