关于GTID主从复制配置

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


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


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

须要注意的是:当设置隔离级别为READ-COMMITED必须设置二进制日志格式为ROW,如今MySQL官方认为STATEMENT这个已经再也不适合继续使用;但mixed类型在默认的事务隔离级别下,可能会致使主从数据不一致;服务器

log-slave-updates、gtid-mode、enforce-gtid-consistency、report-port和report-host:用于启动GTID及知足附属的其它需求;多线程

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

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

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

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

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

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

server-id:同一个复制拓扑中的全部服务器的id号必须唯一;



report-host:

The host name or IP address of the slave to be reported to the master during slave registration. This value appears in the output of SHOW SLAVE HOSTS on the master server.


report-port:

The TCP/IP port number for connecting to the slave, to be reported to the master during slave registration.


master-info-repository:

The setting of this variable determines whether the slave logs master status and connection information to a FILE (master.info), or to a TABLE (mysql.slave_master_info)


relay-log-info-repository:

This option causes the server to log its relay log info to a file or a table.


log_slave_updates:

Whether updates received by a slave server from a master server should be logged to the slave's own binary log. Binary logging must be enabled on the slave for this variable to have any effect. 


 enforce_gtid_consistency:





1、简单主从模式配置步骤


一、配置主从节点的服务配置文件


1.一、配置master节点:

[mysqld]

binlog-format=ROW

log-bin=master-bin

log-slave-updates=true

gtid-mode=on 

enforce-gtid-consistency=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=2

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

server-id=1

report-port=3306

port=3306

datadir=/mydata/data

socket=/tmp/mysql.sock

report-host=master.magedu.com


1.二、配置slave节点:

[mysqld]

binlog-format=ROW

log-slave-updates=true

gtid-mode=on 

enforce-gtid-consistency=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=2

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

server-id=11

report-port=3306

port=3306

log-bin=mysql-bin.log

datadir=/mydata/data

socket=/tmp/mysql.sock

report-host=slave.magedu.com


二、建立复制用户


mysql> GRANT REPLICATION SLAVE ON *.* TO repluser@172.16.100.7 IDENTIFIED BY 'replpass';


说明:172.16.100.7是从节点服务器;若是想一次性受权更多的节点,能够自行根据须要修改;


三、为备节点提供初始数据集


锁定主表,备份主节点上的数据,将其还原至从节点;若是没有启用GTID,在备份时须要在master上使用show master status命令查看二进制日志文件名称及事件位置,以便后面启动slave节点时使用。


四、启动从节点的复制线程


若是启用了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;

相关文章
相关标签/搜索