關於在產品環境中使用 MySQL 5.6 GTIDs 的一些問答

Q:在master-master結構中GTID有什麼優勢?如果有, 它是如何做的?
Q:GTID可以應用到MySQL的ACTIVE ACTIVE MASTER MASTER結構上嗎?

A:GTID不會改變MySQL數據複製的本質:比如在配置GTID之後,數據複製同樣是異步的;如果向master-master結構上的兩個 master寫入數據,GTID同樣沒有寫衝突檢測機制.GTID的主要優勢在於能夠很容易的改變數據複製的拓補結構,當連接一個slave節點到新的 master節點時不再需要爲了找到正確的binlog的位置而做一些複雜的計算.
在master-master數據複製的結構中可以配置GTID, 相對於基於位置的數據備份,GTID並不沒有很多的優勢,因爲你不會改變數據備份的拓補結構.
GTID同樣不推薦在兩個master都可接受數據的結構中向兩個master都寫入數據.


Q:GTIDs在主機:備用主機上運行的好嗎?失效備援有多快?

A:是的,GTIDs能夠很好的處理這種類型的設置(一個主機一個備機)。GTIDs不提供失效備援,必須使用一個額外的工具才行。失效備援的速度取決於使用的工具。


Q:對於已經建立的MASTER-MASTER/MASTER-SLAVE複製,在GTID設置後,我們需要使用 AUTO POS=1重新建立複製,對嗎?

A:是的,使用 MASTER_AUTO_POSITION=1 是需要指出將要使用GTID複製。所以必須運行:STOP SLAVE; CHANGE MASTER TO … MASTER_AUTO_POSITION = 1; START SLAVE;


Q: GTID是怎麼處理那些應用的,這些應用擁有來自不同引擎(比如:InnoDB和MyISAM)的數據表?

A: 事務不能同時用於MyISAM和InnoDB表,請參照文檔.


Q:在master-slave備份的拓補結構(GTID是可用的)中,如果master節點上的二進制日誌被刪除,並且使用AUTO_POSITION=1改變了master命令的情況下, slave節點是怎麼從master節點上獲取數據的?

A: 備份將被中斷,並拋出1236錯誤.


Q: 在slave節點上有什麼值表示該節點的數據滯後了?

A: 是用Seconds_Behind_Master表示的.雖然它不是非常可靠.比如你有一個這樣的備份序列 A -> B -> C, 在C節點上的Seconds_Behind_Master表示的滯後是相對於B節點,而不是A節點. 


Q: 如果我們設置slave爲只讀…是否建議刪除錯誤事務?

A是的,建議刪除。不過這不阻止用戶使用SUPER權限在slave上意外寫入。


Q:這些錯誤事務問題可以用 (active-passive) master-master複製阻止嗎?

A:Master-master複製將確保任何事務寫入一個服務將自動結束在另一個slave上寫入。所以它就像在避免錯誤事務。不過不建議在兩個master上寫入,因爲你會遇到寫衝突。


Q:在MHA上使用GTID有什麼實用的優勢嗎?

A:GTID不提供任何方法執行failover,他們只是簡化你怎樣重新配置複製。所以使用MHA利用GTID是有意義的。


Q: GUID 和 GTID的區別是什麼?什麼時候我們必須使用GUID 和 GTID?

A:我不確定我是否正確的理解了這個問題。GTID由源 id 和事務 id 組成。源 id 是master的server_uuid,是當MySQL首次啓動時自動生成的 GUID。


Q:怎樣檢查slave數據庫表和記錄?我們必須從master到salve數據庫同步數據還是自動進行?

A:你可以使用Percona工具包的 pt-table-checksum 和 pt-table-sync。


轉自:http://www.oschina.net/translate/using-mysql-5-6-global-transaction-ids-gtids-in-production-qa



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章