gtid_next
創(chuàng)新互聯(lián)公司是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護(hù)、成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站備案、服務(wù)器租用、空間域名、軟件開(kāi)發(fā)、微信小程序開(kāi)發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運(yùn)營(yíng)推廣經(jīng)驗(yàn)的科技公司,有著多年的網(wǎng)站建站經(jīng)驗(yàn),致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開(kāi)一個(gè)面向全國(guó)乃至全球的業(yè)務(wù)窗口:建站服務(wù)熱線:18980820575默認(rèn)事務(wù)提交時(shí),MySQL會(huì)為其生成一個(gè)GTID。當(dāng)事務(wù)在Slave節(jié)點(diǎn)上回放時(shí),使用的卻是該事務(wù)在Master節(jié)點(diǎn)上產(chǎn)生的GTID,究其緣由和一個(gè)會(huì)話級(jí)系統(tǒng)變量gtid_next有關(guān)。
若gtid_next的值為AUTOMATIC(其默認(rèn)值),當(dāng)啟用二進(jìn)制日志,無(wú)論在Slave節(jié)點(diǎn)還是Master節(jié)點(diǎn)上,事務(wù)提交都會(huì)產(chǎn)生新的GTID。但若將gtid_next賦值一個(gè)有效的GTID,那么該GTID就是接下來(lái)提交的事務(wù)的GTID,同時(shí)該GTID會(huì)被添加到GTID集合gtid_executed。Slave節(jié)點(diǎn)上的回放線程正式利用了這一點(diǎn),把在Master節(jié)點(diǎn)上生成的GTID賦值給@@SESSION.gtid_next,繼而將此GTID原封不動(dòng)的保存在了Slave節(jié)點(diǎn)上。
gtid_purged
全局系統(tǒng)變量gtid_purged代表了所有已經(jīng)提交了,但在二進(jìn)制日志中又清除掉了的事務(wù)的GTID集合。
全局系統(tǒng)變量gtid_purged是gtid_executed的子集合,如下情形會(huì)引起gtid_purged集合的變化:
·Slave節(jié)點(diǎn)上禁用了二進(jìn)制日志,隨著回放線程提交復(fù)制過(guò)來(lái)的事務(wù),gtid_purged會(huì)發(fā)生變化。
·二進(jìn)制日志文件被清除時(shí),gtid_purged會(huì)發(fā)生變化。
·@@GLOBAL.gtid_purged被賦值時(shí),gtid_purged會(huì)發(fā)生變化。
可以通過(guò)改變gtid_purged集合,來(lái)表明該事務(wù)已提交了,但在二進(jìn)制日志文件中被清除掉了。當(dāng)向gtid_purged集合添加GTID時(shí),同時(shí)也會(huì)向gtid_executed集合添加此GTID。通過(guò)備份增加一個(gè)只讀實(shí)例,正是利用的該思路。在MySQL 5.7版本,只能在gtid_executed集合為空時(shí),才能設(shè)置gtid_purged。
每個(gè)二進(jìn)制日志文件頭部都記錄了一個(gè)Previous_gtids_log_event事件,它代表了該二進(jìn)制日志文件之前所有二進(jìn)制日志文件中GTID的集合(即,第N個(gè)二進(jìn)制日志文件中的Previous_gtids_log_event,等于第N-1個(gè)二進(jìn)制日志文件中的Previous_gtids_log_event,和第N-1的文件中所有Gtid_log_event的并集)。
gtid_executed和gtid_purged這兩個(gè)全局系統(tǒng)變量,在MySQL啟動(dòng)時(shí)就是通過(guò)最老的,和最新的二進(jìn)制日志文件中的Previous_gtids_log_event和Gtid_log_event被初始化的。
gtid_executed集合被初始化的過(guò)程如下:
gtid_executed = 最新的二進(jìn)制日志文件中的Previous_gtids_log_event + 最新的二進(jìn)制日志文件中所有的Gtid_log_event + 系統(tǒng)表mysql.gtid_executed中的GTID(但該GTID集合不包含正在執(zhí)行著的GTID,即@@GLOBAL.gtid_owned)。
gtid_purged集合被初始化的思路是這樣的:
第一個(gè)等式:
現(xiàn)存(存在)的二進(jìn)制日志文件中的GTID,和被清除掉的二進(jìn)制日志文件中的GTID的并集,即gtids_in_binlog。
gtids_in_binlog = 最新的二進(jìn)制日志文件中的Previous_gtids_log_event + 最新的二進(jìn)制日志文件中所有的Gtid_log_event
第二個(gè)等式:
現(xiàn)存(存在)的二進(jìn)制日志文件中的GTID,即gtids_in_binlog_not_purged。
gtids_in_binlog_not_purged = gtids_in_binlog - 最老的二進(jìn)制日志文件中的Previous_gtids_log_event
第三個(gè)等式:
曾經(jīng)出現(xiàn)過(guò),但現(xiàn)在已不存在于二進(jìn)制日志文件中的GTID,即gtid_purged。
gtid_purged = gtid_executed - gtids_in_binlog_not_purged
通過(guò)這3個(gè)等式可得到:
gtid_purged = gtid_executed - gtids_in_binlog_not_purged = 最新的二進(jìn)制日志文件中的Previous_gtids_log_event + 最新的二進(jìn)制日志文件中所有的Gtid_log_event + 系統(tǒng)表mysql.gtid_executed中的GTID - ((最新的二進(jìn)制日志文件中的Previous_gtids_log_event + 最新的二進(jìn)制日志文件中所有的Gtid_log_event) - 最老的二進(jìn)制日志文件中的Previous_gtids_log_event)
即,gtid_purged = 系統(tǒng)表mysql.gtid_executed中的GTID + 最老的二進(jìn)制日志文件中的Previous_gtids_log_event
與上邊兩個(gè)全局系統(tǒng)變量初始化相關(guān)的一個(gè)系統(tǒng)參數(shù)是binlog_gtid_simple_recovery,若其值為FALSE,在初始化該兩個(gè)變量時(shí),MySQL會(huì)遍歷所有的二進(jìn)制日志文件,而不僅是最老的,和最新的二進(jìn)制日志文件,此過(guò)程可能會(huì)花費(fèi)較長(zhǎng)的時(shí)間。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
文章標(biāo)題:說(shuō)GTID-與GTID相關(guān)的系統(tǒng)變量-創(chuàng)新互聯(lián)
文章URL:http://www.rwnh.cn/article40/dghjho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、ChatGPT、企業(yè)建站、電子商務(wù)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容