iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 30
1
AI & Data

一名合格的DBA要從底層一步步爬起系列 第 30

《Day30》MySQL Replication GTID

MySQL 從5.6.5開始支援GTID(global transaction identifieds)全域性事務標誌,一個事務會對應一個GTID,一個GTID只會在server執行一次,能夠避免重複執行導致資料不同步,所以MySQL Replication GTID比傳統的Replicaiton更加安全。

使用GTID也不需要再找Log_file和Log_pos, 而且GTID是連續的,當master與slave有資料衝突時,可以新增空的事務跳過。

GTID工作原理

當master更新資料時,會產生GTID紀錄在binlog,slave的i/o thread會將變更的binlog寫入relaylog,sql thread從relaylog取得GTID,對比slave的binog是否有紀錄,若有紀錄,代表GTID事務已經執行,slave會忽略,若沒有紀錄,slave會從relaylog執行GTID。

參數設定

Vim /etc/my.cnf
[mysqld]

gtid_mode=on             #開啟GTID
enforce_gtid_consistency=on 

限制

無法使用create temporary table 或drop remporary table
無法使用create table …select,因為會產生兩個event,使用到同一個GTID,但slave只會使用一次GTID)


上一篇
《Day29》Oracle Database 實體檔案
系列文
一名合格的DBA要從底層一步步爬起30

尚未有邦友留言

立即登入留言