亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

在MySQL中使用GTIDs復制協議和中斷協議的教程

2024-07-24 13:07:01
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了在MySQL中使用GTIDs復制協議和中斷協議的教程,主要用于多個服務器之間的通信,需要的朋友可以參考下

MySQL5.6有很多新的特性,其中很多人都感興趣的一條就是全局事務序號功能(GTIDs)。而大家都對這一特性很感興趣的原因也很好理解,即:本來重新連接從服務器和一個新的主服務器一直是件很麻煩的事,然而在啟用GTIDs功能之后就變得簡單易行??墒牵珿TIDs的使用不單單是用單獨的標識符替換舊的二進制日志文件/位置,它也采用了新的復制協議。假如你還不太明白這些,那你可以在這篇文章里學點什么。

復制協議:新的 VS 舊的

舊的協議往往簡單直接即:首先從服務器上在一個特定的偏移量那里連接到一個給定的二進制日志文件,然后主服務器在從那里發送所有的事務。

新協議稍有不同:slave首先會發送它已經執行過的GTID的范圍,然后master發送每一個丟失的事務. 它也確保了一個給定的GTID只可以在一個特定的slave中執行一次.

實踐中,這會改變任何東西嗎? 使得,它會改變很多東西. 想象一下下面的場景: 你想要從trx 4開始復制,但是trx2在slave上因為某種緣故丟失了.

在MySQL中使用GTIDs復制協議和中斷協議的教程

使用老協議的話,trx 2再也不會被執行一次,而使用新協議,它就會被自動的再執行一次.

下面是兩個你可以在實踐中看到新協議的通用場景.

跳過事務

眾所周知老的 SET GLOBAL sql_slave_skip_counter = N 在你想要跳過一個事務時不再提供支持,而GTID就可以被啟用了. 換用 GTID XXX:N 來跳過事務, 你須得 注入一個空的事務:

 

 
  1. mysql> SET gtid_next = 'XXX:N'
  2. mysql> BEGINCOMMIT
  3. mysql> SET gtid_next = 'AUTOMATIC'

為什么我們不能使用 sql_slave_skip_counter? 就是因為新的復制協議!

想象一下我們擁有如下圖所示的三臺服務器:

在MySQL中使用GTIDs復制協議和中斷協議的教程

讓我們假設 sql_slave_skip_counter 可以用并且已經被用在S2上用于跳過trx2. 如果你吧S2設置成S1的一個slave將會發生什么呢?

兩個服務器會互相交換被執行了GTID的范圍,并且S1將會意識到其必須將trx2發送給S2. 然后會發生的事情有兩種可能:

如果 trx 2 仍然在S1的二進制日志中,它將會被發送給S2,而事務在也不會被跳過了.

如果 trx 2 不再存在于S1的二進制日志中,你將會得到一個復制錯誤.

很明顯這不安全,這就是為什么 sql_slave_skip_counter 在使用GTID時是不能用的. 要想跳過一個事務,唯一安全的選擇就是去執行一個虛擬的事務,而不是一個真實的事務.

錯誤的事務

如果你在一個slave上本地執行了一個事務 (在MySQL文檔中被稱為錯誤事務), 如果你被這個事務推送到新的master上時會發生什么呢?

使用老協議,基本上沒啥事(準確點說,新的master和其slave之間的數據將會出現不一致,但那在稍后就可能會被修復).

使用新協議,錯誤的事務將會被識別成為在每個地方都丟失了,并且將會自動在容錯備份上被執行,這樣就將會導致打斷復制的隱患.

比方說,你擁有一個master(M)和兩個slave (S1 和 S2). 這里有兩種將slave重連到新的master將會發生(帶有不同復制錯誤的)失敗的場景:

# 場景 1

 

 
  1. # S1 
  2. mysql> CREATE DATABASE mydb; 
  3. # M 
  4. mysql> CREATE DATABASE IF NOT EXISTS mydb; 
  5. # Thanks to 'IF NOT EXITS', replication doesn't break on S1. Now move S2 to S1: 
  6. # S2 
  7. mysql> STOP SLAVE; CHANGE MASTER TO MASTER_HOST='S1'; START SLAVE; 
  8. # This creates a conflict with existing data! 
  9. mysql> SHOW SLAVE STATUS/G 
  10. [...] 
  11. Last_SQL_Errno: 1007 
  12. Last_SQL_Error: Error 'Can'create database 'mydb'database exists' on query. Default database: 'mydb'. Query: 'CREATE DATABASE mydb' 
  13. [...] 

# 場景 2

 

 
  1. # S1 
  2. mysql> CREATE DATABASE mydb; 
  3. # Now, we'll remove this transaction from the binary logs 
  4. # S1 
  5. mysql> FLUSH LOGS; 
  6. mysql> PURGE BINARY LOGS TO 'mysql-bin.000008'
  7. # M 
  8. mysql> CREATE DATABASE IF NOT EXISTS mydb; 
  9. # S2 
  10. mysql> STOP SLAVE; CHANGE MASTER TO MASTER_HOST='S1'; START SLAVE; 
  11. # The missing transaction is no longer available in the master's binary logs! 
  12. mysql> SHOW SLAVE STATUS/G 
  13. [...] 
  14. Last_IO_Errno: 1236 
  15. Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.' 
  16. [...] 

你可以這樣理解,錯誤的事務應該借助基于GTID的服務得以避免. 如果你需要運行一個本地事務,最好的選擇是針對那條特定的語句禁用二進制日志:

 

 
  1. mysql> SET SQL_LOG_BIN = 0; 
  2. mysql> # Run local transaction 

結論

GTIDs在讓我們方便重新和其他服務器連接副本方面是個不小的進步。然而同樣的在運維方面我們也因此面臨新的困難和挑戰。假如你打算開始使用GTIDs,那么你就得確實理解新的復制協議,否則你就會以一種想不到的方式結束復制過程。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人在线观看视频网站| 国产精品视频久久久久| 国产97色在线| 日韩在线免费av| 热久久视久久精品18亚洲精品| 欧美激情视频免费观看| 欧美日韩中文字幕日韩欧美| 久久久免费精品| 精品女厕一区二区三区| 中文字幕日韩在线播放| 成人免费淫片aa视频免费| 在线看日韩av| 国产精品三级美女白浆呻吟| 国产精品久久久av| 亚洲**2019国产| 国产情人节一区| 亚洲毛片在线观看| 亚洲欧美制服丝袜| 欧美视频二区36p| x99av成人免费| 日韩av网址在线观看| 久久久久久有精品国产| 国产亚洲综合久久| 亚洲精品小视频| 日韩电视剧在线观看免费网站| 国产成人精品国内自产拍免费看| 91在线观看免费观看| 午夜精品久久久久久久久久久久| 欧美激情欧美激情在线五月| 国产精品丝袜白浆摸在线| 91精品国产99久久久久久| 色偷偷噜噜噜亚洲男人的天堂| 日韩在线小视频| 91精品国产综合久久香蕉的用户体验| 国产精品99久久久久久久久| 5278欧美一区二区三区| 国产在线日韩在线| 国产成人福利网站| 久久综合久久美利坚合众国| 欧洲成人性视频| 欧美成人精品在线观看| 国外成人在线视频| 亚洲第一网中文字幕| 午夜精品美女自拍福到在线| 国产精品黄页免费高清在线观看| 97精品一区二区三区| 亚洲视频欧洲视频| 亚洲成在人线av| 精品成人在线视频| 日韩欧美亚洲范冰冰与中字| 欧美大肥婆大肥bbbbb| 欧美视频13p| 日本欧美一二三区| 国产精品久久久久久久av大片| 国产日韩专区在线| 欧美性xxxx在线播放| 在线中文字幕日韩| 色www亚洲国产张柏芝| 日本老师69xxx| 狠狠久久亚洲欧美专区| zzjj国产精品一区二区| 欧美精品第一页在线播放| 久久久国产影院| 日韩欧美国产网站| 疯狂欧美牲乱大交777| 欧美日韩在线视频一区| 久久久在线视频| 日本欧美一二三区| 国产精品日韩在线一区| 亚洲精品99久久久久| 亚洲加勒比久久88色综合| 色悠悠国产精品| 欧美又大粗又爽又黄大片视频| 欧美做受高潮1| 日韩免费观看在线观看| 欧美在线性爱视频| 亚洲加勒比久久88色综合| 隔壁老王国产在线精品| 国产精品亚洲精品| 欧美激情a∨在线视频播放| 91日本在线视频| 久久久久久久久久久久久久久久久久av| 欧美视频专区一二在线观看| www.日本久久久久com.| 91国自产精品中文字幕亚洲| 国产精品色视频| 国产欧美日韩亚洲精品| 国产成人一区二区三区| 中文字幕av一区中文字幕天堂| 国产有码一区二区| 日本成人免费在线| 92福利视频午夜1000合集在线观看| 欧美视频专区一二在线观看| 久久亚洲春色中文字幕| 亚洲人a成www在线影院| 欧美性极品xxxx娇小| 国产精品永久免费视频| 欧美日韩激情美女| 欧美性xxxx极品高清hd直播| 欧美区二区三区| 日韩精品视频在线免费观看| 国产色婷婷国产综合在线理论片a| 亚洲精品理论电影| 亚洲成人久久网| 欧美另类第一页| 久久6免费高清热精品| 亚洲天堂男人天堂女人天堂| 欧美性生交xxxxxdddd| 精品日韩美女的视频高清| 国产九九精品视频| 国产福利视频一区| 亚洲欧美日韩中文视频| 中文.日本.精品| 色www亚洲国产张柏芝| 国产suv精品一区二区三区88区| 成人精品久久一区二区三区| 亚洲国产第一页| 亚洲精品在线视频| 夜夜嗨av一区二区三区四区| 亚洲的天堂在线中文字幕| 国产精品高潮在线| 亚洲精品综合精品自拍| 第一福利永久视频精品| 日本精品免费观看| 久久综合久久88| 一本色道久久88精品综合| 亚洲男人天天操| 日韩在线观看av| 亚洲最新av在线网站| 亚洲一区二区中文字幕| 激情av一区二区| 精品视频偷偷看在线观看| 亚洲第一精品夜夜躁人人躁| 黑人巨大精品欧美一区二区三区| 美乳少妇欧美精品| 久久五月情影视| 久久综合网hezyo| 日韩av免费在线播放| 欧美伊久线香蕉线新在线| 亚洲美女精品久久| 欧美夜福利tv在线| 国产精品免费看久久久香蕉| 中文字幕日韩在线观看| 亚洲美腿欧美激情另类| 精品网站999www| 97在线视频精品| 国产精品久久久久福利| 97色在线观看免费视频| 精品国偷自产在线| 国产成人精品在线| 欧美有码在线观看| 亚洲激情第一页| 97免费视频在线| 欧美成人一二三| 色先锋久久影院av| 久久国产精品久久久久| 国产在线视频91| 亚洲欧美中文字幕| 国产成人黄色av| 欧美精品日韩www.p站| 91久久在线观看| 欧美久久精品午夜青青大伊人| 国产脚交av在线一区二区| 欧美在线视频一区|