第18章 复制技术的演进 - xiaoboluo768/qianjinliangfang GitHub Wiki
18.2.1 异步复制
- 2.配置示例
server_id=33061 # 该参数在同一个复制架构中需要保持唯一
log-bin=mysql-bin
server_id=33062 # 该参数在同一个复制架构中需要保持唯一
log-bin=mysql-bin
18.2.2 半同步复制
- 2.配置示例
rpl_semi_sync_master=semisync_master.so
# 需要提前安装好semisync_master.so半同步复制插件
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_master_timeout = 3000
rpl_semi_sync_slave=semisync_slave.so # 需要提前安装好semisync_slave.so半同步复制插件
rpl_semi_sync_slave_enabled = 1
18.2.3 增强半同步复制
- 2.配置示例
rpl_semi_sync_master_wait_no_slave=ON
rpl_semi_sync_master_wait_for_slave_count=1
rpl_semi_sync_master_wait_point=AFTER_SYNC
18.2.4 组复制
- 2.配置示例
server_id=3306162
sync_binlog=10000
innodb_flush_log_at_trx_commit = 2
binlog-checksum=NONE
innodb_support_xa=OFF
auto_increment_increment=3 # 集群中有多少个节点,该参数就设置为多少
auto_increment_offset=1 # 注意,其他节点这个保持唯一
binlog_row_image=full
transaction-write-set-extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_single_primary_mode=OFF
loose-group_replication_enforce_update_everywhere_checks=ON
loose-group_replication_start_on_boot=on
# 需要先在实例中安装group_replication.so库文件
loose-group_replication_ip_whitelist='0.0.0.0/0'
loose-group_replication_local_address='10.10.30.162:24901'
# 不同的节点修改为自己的IP地址
loose-group_replication_group_seeds='10.10.30.162:24901,10.10.30.163:24901,10.10.30.164:24901' # 集群中有多少个节点,就写多少个节点的IP地址
loose-group_replication_bootstrap_group=OFF
report_host='node1' # 不同的节点修改为自己的host解析记录
server_id=3306163
sync_binlog=10000
innodb_flush_log_at_trx_commit = 2
innodb_support_xa=OFF
binlog-checksum=NONE
auto_increment_increment=3
auto_increment_offset=2
binlog_row_image=full
transaction-write-set-extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_single_primary_mode=OFF
loose-group_replication_enforce_update_everywhere_checks=ON
loose-group_replication_start_on_boot=on
loose-group_replication_ip_whitelist='0.0.0.0/0'
loose-group_replication_local_address='10.10.30.163:24901'
loose-group_replication_group_seeds='10.10.30.162:24901,10.10.30.163:24901,10.10.30.164:24901'
loose-group_replication_bootstrap_group=OFF
report_host='node2'
18.2.5 GTID复制
# 在传统复制模式下使用change master to语句需要指定binlog文件和binlog位置
mysql> change master to master_host='ip',master_user='user_name',master_password= 'password', master_port='mysql_port',master_log_file='binlog file name', master_log_pos='binlog position';
# 在GTID复制模式下不需要指定binlog文件和binlog位置,只需指定master_auto_position=1即可
## 注意,如果从库是基于备份数据搭建的,那么在执行change master to语句之前,需要使用备份目录下的xtrabackup_binlog_info 文件中的GTID构造一个set gtid_purged= 'GTID SET' 设置一下,这样就能够保证GTID和数据保持一致了
reset master; # 在从库实例启动之后,登录到预搭建从库的实例中清除之前的GTID、binlog等位置信息
mysql> set global gtid_purged='2d623f55-2111-11e8-9cc3-0025905b06da:1-3'; # 把xtrabackup_binlog_info文件中的GTID SET写上来,有多个GTID SET时用逗号分隔
mysql> change master to master_host='ip',master_user='user_name',master_password= 'password', master_port='mysql_port',master_auto_position=1; # 执行change master to语句
- 2.配置示例
gtid_mode = on
enforce_gtid_consistency = 1
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates = 1 # 在MySQL 5.7及之后的版本中,在从库中可以关闭该参数,关闭之后mysql.gtid_executed表中会实时记录每个事务的GTID
18.3.2 DATABASE 并行复制
- 2.配置示例
slave_parallel_workers=N
18.3.3 LOGICAL_CLOCK 并行复制
- 2.配置示例
slave_parallel_type=LOGICAL_CLOCK
slave_preserve_commit_order=1
slave_parallel_workers=N
slave_parallel_type=LOGICAL_CLOCK
18.3.4 WRITESET并行复制
- 2.配置示例
slave_parallel_type=LOGICAL_CLOCK
transaction_write_set_extraction=XXHASH64
binlog_transaction_dependency_tracking=WRITESET|WRITESET_SESSION
binlog_transaction_dependency_history_size=25000
slave_preserve_commit_order=1
slave_parallel_workers=N
slave_parallel_type=LOGICAL_CLOCK
- 温馨提示:关于文中提到的参数的详细解释,可参考本书下载资源中的“附录C”。或详见开源文档:附录C MySQL常用配置变量和状态变量详解
上一篇:第17章 mysql系统库应用示例荟萃 | 下一篇:第19章 事务概念基础