mysql 5.6 新特性之GTID複製

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必須保持惟一性。 

啓動從庫服務,並指定主庫鏈接信息(所設主庫ip192.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

相關文章
相關標籤/搜索