赞
踩
GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成。这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系 的mysql服务器上也是唯一的。正是因为这样一个特性使得mysql的主从复制变得更加简单,以及数据库一致性更可靠。本文主要描述了快速配置一个基于GTID的主从复制架构,供大家参考。
GTID = source_id:transaction_id
示例:
GTID的详细原理请参考:MySql Replication基本原理
对于GTID的配置,主要修改配置文件中与GTID特性相关的几个重要参数(建议使用mysql-5.6.5以上版本),如下:
1、主: [mysqld] #GTID: server_id=54 gtid_mode=on enforce_gtid_consistency=on #binlog log_bin=master-binlog log-slave-updates=1 binlog_format=row #relay log skip_slave_start=1 2、从: [mysqld] #GTID: gtid_mode=on enforce_gtid_consistency=on server_id=197 #binlog log-bin=slave-binlog log-slave-updates=1 binlog_format=row #relay log skip_slave_start=1
配置文件中的参数解释请参考:MySql Replication配置项简述
对于新配置的mysql服务器,按本文第五点描述配置参数文件后,在slave端执行以下操作:
mysql> CHANGE MASTER TO -> MASTER_HOST='mysql-server-01', -> MASTER_USER='slave', -> MASTER_PASSWORD='123456', -> MASTER_PORT=3306, -> MASTER_AUTO_POSITION = 1; Query OK, 0 rows affected, 2 warnings (0.03 sec) mysql> start slave; Query OK, 0 rows affected (0.01 sec) mysql> show slave status \G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: mysql-server-01 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master-binlog.000001 Read_Master_Log_Pos: 151 Relay_Log_File: mysql-server-02-relay-bin.000002 Relay_Log_Pos: 369 Relay_Master_Log_File: master-binlog.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
可以看到复制工作已经开始且正常
mysql> SET @@global.read_only = ON;
; mysql> CHANGE MASTER TO
> MASTER_HOST = host,
> MASTER_PORT = port,
> MASTER_USER = user,
> MASTER_PASSWORD = password,
> MASTER_AUTO_POSITION = 1;
- 1
- 2
- 3
- 4
- 5
- 6
mysql> START SLAVE;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。