共计 1542 个字符,预计需要花费 4 分钟才能阅读完成。
背景:
MariaDB 在 10.0.5 就已经支持了并行复制的功能,即从库多线程复制的功能。MySQL 最先在 5.6.3 中支持。目前暂时没有用 MySQL5.6 的版本,故暂时只对 MariaDB 进行一些说明,后期会对 MySQL 进行说明。
对于 replication 很多同学都已经很熟悉了,这里稍微讲下,在复制过程中有 3 个线程:Master 上的 IO 线程和 Slave 上的 IO、SQL 线程,复制的原理可以自己去 google 搜。从库一直都是异步复制主库的,通过 SHOW SLAVE STATUS 可以查看从库落后主库的时间,当然这个时间不一定准确。从库落后主库的原因很大一部分是因为程序在主库上执行 SQL 是多线程的,而从库复制主库却只有一个线程。在 MariaDB10.0.0 和 MySQL5.6.3 之前一直也是这样。在其之后的版本里支持了多线程复制,下面来看看如何开启,和开启之后的效果,目前只针对 MariaDB。
说明:
MariaDB 在配置文件的 mysqld 选项组中添加:
slave-parallel-threads
我手动修改成了 8,该参数可以动态修改,在修改之前需要先 stop slave。修改完之后的效果:
可以看到复制线程有 8 个。说明已经开启了多线程复制的功能。
MySQL 在配置文件的 mysqld 选项组中添加:
slave_parallel_workers
采用多个 sql 线程,每个 sql 线程处理不同的 database,提高了并发性能,即使某 database 的某条语句暂时卡住,也不会影响到后续对其它的 database 进行操作。如果只有一个 database 要同步,那么多个 sql 线程也没有什么意义。
多线程复制在一定程度上解决了从库延迟主库并且很难追上的问题,有兴趣的同学可以玩玩 MySQL 的多线程复制。
参考资料:
MariaDB 多线程复制说明:https://mariadb.com/kb/en/mariadb/parallel-replication/
MySQL 多线程复制说明:http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#sysvar_slave_parallel_workers
Linux 系统教程:如何检查 MariaDB 服务端版本 http://www.linuxidc.com/Linux/2015-08/122382.htm
MariaDB Proxy 读写分离的实现 http://www.linuxidc.com/Linux/2014-05/101306.htm
Linux 下编译安装配置 MariaDB 数据库的方法 http://www.linuxidc.com/Linux/2014-11/109049.htm
CentOS 系统使用 yum 安装 MariaDB 数据库 http://www.linuxidc.com/Linux/2014-11/109048.htm
安装 MariaDB 与 MySQL 并存 http://www.linuxidc.com/Linux/2014-11/109047.htm
Ubuntu 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10 http://www.linuxidc.com/Linux/2014-11/109471.htm
[翻译]Ubuntu 14.04 (Trusty) Server 安装 MariaDB http://www.linuxidc.com/Linux/2014-12/110048htm
MariaDB 的详细介绍 :请点这里
MariaDB 的下载地址 :请点这里
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-08/134649.htm