并行复制

最近更新时间:2024-10-17 22:03:12

我的收藏

功能介绍

官方 MySQL5.6以下的版本在 slave 节点进行回放,master 节点同步 binlog 时,均为单线程模式,5.6及之后的版本变更为并行模式。但官方的并行是基于 database 和 logical clock,并行粒度太大,导致很多情况下并行效果不理想。
腾讯云 TXSQL 内核团队针对并行复制功能进行了优化,支持按 table 并行,相当于将其粒度拆分至表,提升了并行度,从而减少主从延迟。

支持版本

内核版本 MySQL8.0 20201230及以上
内核版本 MySQL5.7 20180530及以上
内核版本 MySQL5.6 20170830及以上

适用场景

该功能主要针对部分负载能提升 slave 机重放 binlog 速度,减少主从的 delay。

使用说明

说明:
并行复制能力通过设置参数 slave_parallel_workers 不为0来开启,在 MySQL5.6、5.7、8.0版本的高稳定性参数模板中,此参数默认值为0,在高性能参数模板中,此参数默认值为8。
MySQL5.6、5.7、8.0版本如需按 TABLE 执行并行复制,在设置参数 slave_parallel_workers 不为0的前提下,可通过将参数 slave_parallel_type 设置为新增加的值 TABLE 来实现。
另外 information_schema 下新增加了状态表 cdb_slave_thread_status,用以展示状态信息。
MySQL5.6版本相关参数说明
MySQL5.7版本相关参数说明
MySQL8.0版本相关参数说明
参数名
动态
类型
默认
参数值范围
说明
slave_parallel_type
YES
char*
SCHEMA
SCHEMA/TABLE
从机并行复制级别:
SCHEMA 为对象级别复制,不同对象的复制事件可以并行执行。
TABLE 为表级别复制,不同表的复制事件可以并行执行。
参数名
动态
类型
默认
参数值范围
说明
slave_parallel_type
YES
char*
LOGICAL_CLOCK
DATABASE/TABLE/LOGICAL_CLOCK
从机并行复制级别:
DATABASE 为库级别的复制,不同数据库的复制事件可并行完成。
TABLE 为表级别复制,不同表的复制事件可以并行执行。
LOGICAL_CLOCK 为逻辑时钟级别复制,在主机上属于相同逻辑时钟的事件可并发执行。
参数名
动态
类型
默认
参数值范围
说明
slave_parallel_type
YES
char*
LOGICAL_CLOCK
DATABASE/TABLE/LOGICAL_CLOCK
从机并行复制级别:
DATABASE 为库级别的复制,不同数据库的复制事件可并行完成。
TABLE 为表级别复制,不同表的复制事件可以并行执行。
LOGICAL_CLOCK 为逻辑时钟级别复制,在主机上属于相同逻辑时钟的事件可并发执行。