Mysql 5.6開始支持gtid模式的主從複製 mysql
Gtid即爲全局事務標識符,是指mysql對寫入二進制日誌的每一個事務所做的標記。由server_uuid和事務id組成。 sql
Gtid的做用是什麼?能夠簡化搭建主從實例。咱們以往在擴展從庫時,均須要在從庫上指定開始複製的二進制日誌文件名、位置,若是指定錯誤,可能還會引發數據一致性的問題。 服務器
使用gtid模式以後,只須要在從庫上指定主庫的基本鏈接信息(登陸信息、ip,端口等),將自動查尋複製起始點。這將大大簡化擴展從庫實例。 ide
gtid是由server_uuid和事務id組成。Server_uuid是一個128位的數字,形如b45c01f0-6787-11e3-a5f6-0800271b7f69 性能
它是由服務器首次啓動時自動隨機生成,並寫入到數據目錄的auto.cnf目錄中。服務器一旦正式投入運行,就毫不要修改server_uuid或修改刪除auto.cnf文件!不然會引發後續的主從複製故障! ui
從這個原理來看,使用gtid並不會影響主從複製性能。 spa
混合gtid模式與非gtid,還可否正常使用?徹底能夠,但不建議這樣作。保持單一與統一,可減小沒必要要的麻煩。 日誌
若是在使用過程當中,有疑問可致郵 zhangxugg@163.com, 共同探討 orm
如何啓用gtid複製? server
1. 主庫上的操做
中止主庫實例,並刪除主庫數據目錄中生成的全部二進制相關日誌,即binlog, relay-binlog, binglog.index, relay-bin.index, relay-log.info
向主庫的啓動配置文件/etc/my.cnf中加入如下配置項
server_id = 73906
log_bin=mysql-binlog
sync_binlog = 0
binlog_format=MIXED
expire_logs_days = 7
gtid-mode=on
log-slave-updates
enforce-gtid-consistency
master_info_repository=TABLE
啓動主庫服務, 並在主庫上建立複製賬號
grant replication slave, replication client to 'repl'@'%' identified by 'repl';
2. 從庫上的配置
中止從庫實例,同上刪除從庫全部相關舊文件,binglog, relay-bin.*, relay-bin.index, relay-log.info
配置從庫啓動參數文件/etc/my.cnf,加入如下配置
server_id = 73907
log_bin=mysql-binlog
sync_binlog = 0
binlog_format=MIXED
expire_logs_days = 7
gtid-mode=on
log-slave-updates
enforce-gtid-consistency
master_info_repository=TABLE
read_only=1
注意:每一個節點的server_id必須保持惟一性。
啓動從庫服務,並指定主庫鏈接信息(所設主庫ip爲192.168.10.1,端口爲3306,複製賬號密碼均爲repl)。
mysql> CHANGE MASTER TO MASTER_HOST='192.168.10.1',MASTER_PORT=3306,MASTER_USER='repl',
MASTER_PASSWORD='repl',MASTER_AUTO_POSITION=1;
mysql> start slave;
mysql> show slave status\G