mysql-学习-10-20170531-复制类型的选择

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql-学习-10-20170531-复制类型的选择相关的知识,希望对你有一定的参考价值。

mysql-学习-10-20170531-复制类型的选择

技术分享

 

技术分享

技术分享

 遇到从库延迟,怎么定位是一个大事务呢 ?
 从库延迟,你会怎么做? 
 
首先 
 show slave status\\G;   里面有个
 exec_master_log_position  里面的数字卡主了,不会动,那么1 通过mysqlbinlog  有2个线程
 io_thread, sql_thread  
 
 
 
 second_behind_master = IO_Thread.timestamp -SQL_Thread.timestamp 
 
 
MySQL 每秒1万个Insert 是非常轻松的
second_behind_master = 0  

 

S1, S2, S3  他们谁同步的最靠前,怎么判断 ???
gtid没有上面的second_behind_master 这个参数
 
首先要判断它身是不是把IO_thread拉过来的日志执行完毕了。 
 
read_master_log_file==relay_master_log_file 
read_master_log_pos = exec_master_log_pos 
recivie_gtid, execute_gtid  

再看谁执行的靠前?

先看是否差一个文件否?

s1.read_master_log_file   s2. read_master_log_file 

再看下面的位置是否一致?

s1.read_master_log_pos == s2.read_master_pos 

 

 

建议配置 为row格式+gtid

 
要求从库的IO_thread给主库一个Ack响应
对binlog日志传输的保障

 

 在金融环境: 如果使用半同步,就在设置中设置成,不允行从半同步切换到异步

 

PXC 是 同步复制原理的

 

 【冒泡】 A608-李魏良-成都(673529096)  21:45:27
MySQL 5.7 半同步增强,增加 rpl_semi_sync_master_wait_slave_count 参数控制主库接收多少个slave 写事务成功反馈 才返回 成功给客户端
【管理员】吴炳锡(82565387)  21:46:08
 rpl_semi_sync_master_wait_for_slave_count
默认是1 

 

 

技术分享

 

 

技术分享

 


mysqlbinlog + semi-sync 
row+gtid  

 

 

【管理员】吴炳锡(82565387)  22:21:36
master_log_file=‘mysql-bin.000100‘, master_log_pos=10000000
但是主库上还有一个: mysql-bin.000101 
【管理员】吴炳锡(82565387)  22:23:02
mysqlbinlog —start-position=10000000   mysql-bin.000100 |mysql -h s1 -P xxx -pxxxx -uxxxx
【活跃】A475-陈涛-苏州(20548079)  22:23:17
执行两次
【管理员】吴炳锡(82565387)  22:23:17
mysqlbinlog   mysql-bin.000101 |mysql -h s1 -P xxx -pxxxx -uxxxx
mysqlbinlog   mysql-bin.000101 mysql-bin.000102 |mysql -h s1 -P xxx -pxxxx -uxxxx 

 

 

 

技术分享

 




















以上是关于mysql-学习-10-20170531-复制类型的选择的主要内容,如果未能解决你的问题,请参考以下文章

MySQL学习笔记06基于Binary Log的复制

学习MySQL之主从复制与读写分离一篇就够了!(数据库并发能力的提升)

最全mysql的复制和读写分离

mysql5.7主从复制--在线变更复制类型

Mysql的主从配置

我的MYSQL学习心得(十七) 复制