MySQL 5.6 测试之 Replication(主从复制)

标签: MySQL FAQ MySQL基础知识 MySQL高级技术 Replication/复制/同步 运维相关 | 发表时间:2012-10-11 20:26 | 作者:yejr
出处:http://imysql.com

MySQL 5.6测试之Replication

一、简述
MySQL 5.6版本相比以前新增了很多令人激动的特性,简要介绍见: 转:MySQL 5.6新特性。性能方面已经做过测试了,详细请见: MySQL 5.6 vs MariaDB 5.5 vs Percona(5.5 & 5.6) 之TPCC性能测试。接下来继续测试其Replication(主从复制)功能,看看是否依旧能让人激动。

二、测试环境
2.1 测试环境和之前一样,详细见下图:

2.2 自动化测试脚本 MySQL 5.6 vs MariaDB 5.5 vs Percona(5.5 & 5.6) 之TPCC性能测试 文中已提及,下载地址: tpcc-run.sh

2.3 重点配置选项差异对比

#binlog
log-bin = binlog
binlog_format = mixed
gtid_mode = ON
disable-gtid-unsafe-statements = 1
binlog_cache_size = 4M
max_binlog_size = 1G
max_binlog_cache_size = 2G
sync_binlog = 1
expire_logs_days = 1

#relay log
max_relay_log_size = 1G
relay_log_purge = 1
relay_log_recovery = 1
master_verify_checksum = 1
master_info_repository = 'TABLE'
slave_sql_verify_checksum = 1
slave_allow_batching = 1
log_slave_updates

MySQL 5.6宣称支持多线程并发复制,事实上是针对每个database开启相应的独立线程,如果线上业务中,只有一个database或者绝大多数压力集中在个别database的话,多线程并发复制特性就没有意义了。

三、测试结果
测试方法:部署master-slave replication环境后,在master上运行tpcc压力测试,然后观察tpcc测试结果,slave上数据复制进度以及数据一致性等。

TpmC结果对比(由于之前已做过其他对比测试,在这里仍旧以模式 "percona 5.6.6-m9-56(独享,1 bp)"(黄色底)为基准进行对比):

四、小结
percona 5.6在开启binlog,启用复制后,性能并不像以前的版本那样突降。在多次测试案例中,比没开binlog还要高,并且测试完毕后可保证数据一致性(测试期间2次kill -9了slave实例)。在以往的版本中,经过大压力测试或者线上运行一段时间后,数据很容易就不一致了。
另外,tpcc压1000个dw,循环3次,从8,16,32...~256线程并发跑,跑percona 5.6复制,slave比master慢了7小时18分钟,这方面仍有待改进。

相关 [mysql 测试 replication] 推荐:

MySQL 5.6 测试之 Replication(主从复制)

- - MySQL 中文网 -
MySQL 5.6测试之Replication. MySQL 5.6版本相比以前新增了很多令人激动的特性,简要介绍见: 转:MySQL 5.6新特性. 性能方面已经做过测试了,详细请见: MySQL 5.6 vs MariaDB 5.5 vs Percona(5.5 & 5.6) 之TPCC性能测试.

MySQL Replication 线程

- - CSDN博客推荐文章
Replication 线程. Mysql 的Replication 是一个异步的复制过程,从一个Mysql instace(我们称之为Master)复制到另一个Mysql instance(我们称之Slave). 在Master 与Slave 之间的实现整个复制过程主. 要由三个线程来完成,其中两个线程(Sql 线程和IO 线程)在Slave 端,另外一个线程(IO 线程)在Master 端.

MySQL 平行執行的 Replication…

- - Gea-Suan Lin's BLOG
「 MySQL Replication – Multi-Threaded Slaves (Parallel Event Execution)」這篇在講 MySQL 5.6 的 multi-threaded replication. 在文章裡提到,在 5.6.3 之前的版本,MySQL replication 都是 single-threaded,所以當 master 可以充分發揮多 CPU 能力時,slave 仍然要一個更新跑完才會跑下一個更新.

MySQL半同步复制(Semisynchronous Replication)

- - IT技术博客大学习
MySQL5.5引入了半同步复制(Semi-synchronous Replication),以下是对于半同步复制的认知和理解:. 半同步启动需要主从两端都需要加载安装各自对应的semi模块,从库端支持半同步功能的数量至少一台;主库端当一个事务成功提交后,并不及时反馈给前端用户,该线程会被临时block,等待由从库端返回确认该条事务也同时成功写入到relay log中的receipt(回执确认),这时主库线程才返回给当前session告知操作完成,半同步复制并不关心在从库一端该事务是否都被执行并被提交完成.

[玩转MySQL Replication] 复制拓扑

- - CSDN博客数据库推荐文章
     朴实简单的才是真、那些高端洋气的复制拓扑纯属自虐.      实施复制大概会有 4 个原则:.      ① 一个主库可以有多个备库.      ② 一个备库只能有一个主库.      ③ 每个备库 Server ID全局唯一.      ④ log_slave_updates 有薪火相传之效用.

relay fetch 解决mysql replication 主从延迟

- - CSDN博客推荐文章
      mysql replication 中主从延迟是一个比较常见的问题,请看前期一篇博文: 怎样解决MySQL数据库主从复制延迟的问题. 根据目前有些公司使用的方案,最近测试了两个,其中之一是阿里的relay fetch ,业绩说法数据预热,当然也有其他开源类似开源工具,目前诸如 mk-slave-prefetch及 replication-prefetch等,感兴趣可以去看看.

MySQL Replication 常用SQL、应用、文件、流程、模式

- - CSDN博客数据库推荐文章
无聊时写的,算科普吧,毕竟内置的Replication是MySQL的骄傲.     列出当前主库二进制日志状态.     列出连接到主库的备库信息.     列出二进制日志中的事件.     置空二进制日志索引文件,并创建一个新的二进制日志.     删除主库的二进制日志.     ① 目标日志确认如下:.

MySQL Master-Slaver Replication 讓資料庫資料有備援

- - SSORC.tw
重新複習一下  資料庫同步 – MySQL + replication. Master / Slaver 架構就是要讓 MySQL 資料庫系統有著備援的保障. 基本運作方式就是,MySQL  Master 這台上只要有新增刪除修改,就會記錄在 binlog 檔裡,這時 Slaver 就可以透過 Master 授權的帳號去同步資料 ( Replication ),這是單向的.

fred: MongoDB Replication 簡記

- - Planet DebianTW
就在幾天前,MongoDB 邁入了 2.2.0 的穩定版本. 我們若回頭來看,MongoDB 一直到了 2.0 前後,比起早期版本,已經有長足的進步,並且支援了相當多的功能,也對規模化和資料庫系統管理下了很多功夫. 對於大多數的資料庫應用,已經非常適合. 若你對資料庫相關技術有些了解,就會知道,當資料庫的資料發展一定規模程度,或是要確保系統不當機時,我們就需要用到 Master/Slave 的方式去備份和備援,當主要(Master)伺服器出了問題,次要(Slave)伺服器便即時補上,保持系統運作.

mysql 5.6 online ddl 测试

- - CSDN博客数据库推荐文章
     在生产环境中,因为业务需求,改动mysql表结构,特别是数据量特别大的时候,几百万甚至几千万的数据,mysql online ddl操作非常让mysql dba揪心. 5.6版本支持online ddl.    为什么mysql ddl操作让dba揪心呢. 因为mysql ddl操作内部原理是这样的:.