mysql5.6,基于GTID的主从同步与延迟复制
GTID相關:
? 在mysql5.6之前,mysql主從復制是slave通過配置master的binlog位置實現的,且每一個slave自身的binlog卻不同。而在mysql5.6版本后引入了GTID(全局事務標識符),這個值在master生成,slave只要在開啟主從復制時指定master的用戶,密碼,就可獲取master的GTID實現同步,而無需再每次去查看master的binlog位置,大大方便了主從同步的配置。GTID的唯一性強化了數據的主備一致性,故障恢復,以及容錯能力。
延遲復制相關:
? 在之前的博客中介紹過mysql的延遲復制,當時是基于第三方工具percona-toolkit實現的。在mysql5.6版本后,mysql自帶了延遲復制的功能,且配置十分簡單。
實驗環境:
? ? 主庫:192.168.52.128:3306
? ? 從庫:192.168.52.135:3306
配置GTID復制:
? 1:安裝mysql(不贅述)
? 2:開啟GTID模式,主從庫都要:
? 在my.cnf配置文件中加入binlog以及gtid相關配置,并重啟mysql。
主:
[mysqld] binlog-format=ROW log-bin=master-bin-log log-slave-updates=true gtid-mode=on????????????????----開啟gtid enforce-gtid-consistency=true???????---強制GTID一致性 master-info-repository=TABLE relay-log-info-repository=TABLE sync-master-info=1 slave-parallel-workers=2??????????---設定從服務器的SQL線程數 binlog-checksum=CRC32 master-verify-checksum=1 slave-sql-verify-checksum=1 binlog-rows-query-log_events=1 server-id=1從:
[mysqld] server-id?=?2 log-bin=mysql-bin 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=4 binlog-checksum=CRC32 master-verify-checksum=1 slave-sql-verify-checksum=1 binlog-rows-query-log_events=1? 重啟mysql:
service?mysqld?restart? 查看主庫及叢庫的gtid是否開啟:
? 這時主庫上會分配一個gtid號:
? 3:在主庫上創建復制所需的賬戶:
mysql>grant?replication?slave?on?*.*?to?repl@192.168.52.%?identified?by?'123456'; mysql>flush?privileges;??
? 4:從庫上配置同步。
mysql>change?master?to?master_host='192.168.52.128',master_user='repl',master_password='123456',master_auto_position=1;? mysql>slave?start;? 可以看到這里不用去主庫查找binlog與相關的位置信息,直接使用master_auto_position=1,mysql會自動查找同步的位置
??
? 5:查看效果:
? 可以看到同步已經正常進行中,同步位置為7。
? 進行一些操作,驗證同步效果:
? 主:創建一個實例,并新建一張表,插入一些數據
? 從:
? 同步正常,使用show slave stautus\G查看同步狀態,可以看到同步位置執行到了10;
復制延遲配置:
mysql>stop?slave; mysql>CHANGE?MASTER?TO?MASTER_DELAY?=?100;?????????-------單位為秒 mysql>start?slave; mysql>show?slave?status?\G;? SQL_Delay:字段變為100,表示此時從庫與主庫的同步開始有了100秒的固定延遲。
? SQL_Remaining_Delay:當主庫有了新的操作,該字段會進入倒計時,從配置的延遲時間(這里為100)開始。正常情況下為NULL。
總結
以上是生活随笔為你收集整理的mysql5.6,基于GTID的主从同步与延迟复制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式[20]-Builder
- 下一篇: 【oracle】TNS-03505: 无