千家信息网

MySQL-5.6 基于GTID及多线程的复制

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,MySQL 5.6引入的GTID(Global Transaction IDs)使得其复制功能的配置、监控及管理变得更加易于实现,且更加健壮。要在MySQL 5.6中使用复制功能,其服务配置段[mys
千家信息网最后更新 2024年12月13日MySQL-5.6 基于GTID及多线程的复制


MySQL 5.6引入的GTID(Global Transaction IDs)使得其复制功能的配置、监控及管理变得更加易于实现,且更加健壮。


要在MySQL 5.6中使用复制功能,其服务配置段[mysqld]中致少应该定义如下选项:


binlog-format:二进制日志的格式,有row、statement和mixed几种类型;

log-slave-updates、gtid-mode、enforce-gtid-consistency、report-portreport-host:用于启动GTID及满足附属的其它需求;

master-info-repositoryrelay-log-info-repository:启用此两项,可用于实现在崩溃时保证二进制及从服务器安全的功能;

sync-master-info:启用之可确保无信息丢失;

slave-paralles-workers:设定从服务器的SQL线程数;0表示关闭多线程复制功能;

binlog-checksum、master-verify-checksum和slave-sql-verify-checksum:启用复制有关的所有校验功能;

binlog-rows-query-log-events:启用之可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度;

log-bin:启用二进制日志,这是保证复制功能的基本前提;

server-id:同一个复制拓扑中的所有服务器的id号必须惟一;


简单主从模式配置步骤:


1、配置主从节点的服务配置文件1.1、配置master节点:[mysqld]binlog-format=ROWlog-bin=master-binlog-slave-updates=truegtid-mode=on enforce-gtid-consistency=truemaster-info-repository=TABLErelay-log-info-repository=TABLEsync-master-info=1slave-parallel-workers=2binlog-checksum=CRC32master-verify-checksum=1slave-sql-verify-checksum=1binlog-rows-query-log_events=1server-id=1report-port=3306port=3306datadir=/mydata/datasocket=/tmp/mysql.sockreport-host=master.magedu.com1.2、配置slave节点:[mysqld]binlog-format=ROWlog-slave-updates=truegtid-mode=on enforce-gtid-consistency=truemaster-info-repository=TABLErelay-log-info-repository=TABLEsync-master-info=1slave-parallel-workers=2binlog-checksum=CRC32master-verify-checksum=1slave-sql-verify-checksum=1binlog-rows-query-log_events=1server-id=11report-port=3306port=3306log-bin=mysql-bin.logdatadir=/mydata/datasocket=/tmp/mysql.sockreport-host=slave.magedu.com2、创建复制用户mysql> GRANT REPLICATION SLAVE ON *.* TO repluser@172.16.100.7 IDENTIFIED BY 'replpass';说明:172.16.100.7是从节点服务器;如果想一次性授权更多的节点,可以自行根据需要修改;3、为备节点提供初始数据集锁定主表,备份主节点上的数据,将其还原至从节点;如果没有启用GTID,在备份时需要在master上使用show master status命令查看二进制日志文件名称及事件位置,以便后面启动slave节点时使用。4、启动从节点的复制线程如果启用了GTID功能,则使用如下命令:mysql> CHANGE MASTER TO MASTER_HOST='master.magedu.com', MASTER_USER='repluser', MASTER_PASSWORD='replpass', MASTER_AUTO_POSITION=1;没启用GTID,需要使用如下命令:slave> CHANGE MASTER TO MASTER_HOST='172.16.100.6',-> MASTER_USER='repluser',-> MASTER_PASSWORD='replpass',-> MASTER_LOG_FILE='master-bin.000003',-> MASTER_LOG_POS=1174;



0