日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql gtid基础_MySQL 基础知识梳理学习(四)----GTID

發(fā)布時(shí)間:2023/11/30 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql gtid基础_MySQL 基础知识梳理学习(四)----GTID 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在日常運(yùn)維中,GTID帶來的最方便的作用就是搭建和維護(hù)主從復(fù)制。GTID的主從模式代替了MySQL早期版本中利用二進(jìn)制日志文件的名稱和日志位置的做法,使用GTID使操作和維護(hù)都變得更加簡(jiǎn)潔和可高。

1.GTID的優(yōu)點(diǎn)

(1)基于GTID搭建主從復(fù)制根據(jù)簡(jiǎn)單。

(2)可以確保每個(gè)事務(wù)只會(huì)被執(zhí)行一次。

(3)可以方便的實(shí)現(xiàn)Replication的Failover,不需要像傳統(tǒng)模式復(fù)制那樣去找master_log_file和master_log_pos。

(4)GTID在MGR中也發(fā)揮了中要作用。MGR各節(jié)點(diǎn)之間復(fù)制依賴于GTID,并且在集群節(jié)點(diǎn)進(jìn)行Recover重新加入到集群的操作中,會(huì)選擇其中一個(gè)節(jié)點(diǎn)作為Donor,然后基于Purged的GTID開始同步數(shù)據(jù)。MGR還是通過GTID進(jìn)行沖突驗(yàn)證,用于跟蹤每個(gè)實(shí)例上提交的事務(wù),確定哪些事務(wù)可能有沖突。

2.使用GTID搭建主從時(shí),需要注意的MySQL參數(shù)。

(1)server_id: 設(shè)置MySQL實(shí)例的server_id,每個(gè)實(shí)例的server_id不能一樣。

(2)gtid_mod=ON: MySQL實(shí)例開啟GTID模式。

(3)enforce_gtid_consitency=ON: 使用GTID模式復(fù)制時(shí),需要開啟此參數(shù),用來保證GTID的一致性。

(4)log-bin: MySQL必須開啟Binlog。

(5)log-slave-updates=1: 決定slave從master接受到的更新且執(zhí)行之后,執(zhí)行的Binlog是否記錄到salve的Binlog中,建議開啟。

(6)binlog_format=ROW:強(qiáng)烈建議binlog_format使用ROW格式,其它格式可能造成數(shù)據(jù)不一致。

(7)skip-slave-start=1:當(dāng)salve數(shù)據(jù)庫啟動(dòng)的時(shí)候,salve不會(huì)自動(dòng)開啟復(fù)制。

3.使用GTID的注意事項(xiàng)

由于基于GTID的復(fù)制依賴于事務(wù),所以在使用GTID時(shí),有些MySQL特性不支持。

(1)事務(wù)中混合多個(gè)存儲(chǔ)引擎,會(huì)產(chǎn)生多個(gè)GTID。

當(dāng)使用GTID時(shí),如果在同一個(gè)事務(wù)中,更新包含了非事務(wù)引擎(如MyISAM)和事務(wù)引擎(InnoDB)表的操作,就會(huì)導(dǎo)致多個(gè)GTID分配給同一個(gè)事務(wù)。

(2)主從庫的表存儲(chǔ)引擎不一致,會(huì)導(dǎo)致數(shù)據(jù)不一致。

如果主從庫的存儲(chǔ)引擎不一致,例如一個(gè)是事務(wù)存儲(chǔ)引擎,一個(gè)是非事務(wù)存儲(chǔ)引擎,則會(huì)導(dǎo)致事務(wù)和GTID之間一對(duì)一的關(guān)系被破壞,結(jié)果導(dǎo)致基于GTID的復(fù)制不能正確地運(yùn)行。

(3)基于GTID模式復(fù)制,不支持Create table ...select 語句。

因?yàn)槭褂没谛心J降膹?fù)制時(shí),該語句實(shí)際上被記錄為兩個(gè)單獨(dú)的事件,一個(gè)是創(chuàng)建表,另一個(gè)是將原表中的數(shù)據(jù)插入到剛剛新建的表中。當(dāng)在事務(wù)中執(zhí)行該語句時(shí),在一些情況下。這兩個(gè)事務(wù)可能接收到相同的事務(wù)ID,這意味著包含插入的事務(wù)將被從庫挑過。

(4)不支持Create Temporary table 和 drop temporary table。

使用GTID復(fù)制時(shí),?不支持Create Temporary table 和 drop temporary table。但是,在autocommit=1的情況下可以創(chuàng)建臨時(shí)表,master創(chuàng)建臨時(shí)表不產(chǎn)生GTID信息,所以不會(huì)同步到Salve上,但是刪除臨時(shí)表時(shí),產(chǎn)生GTID會(huì)導(dǎo)致主從中斷。

(5)不推薦在GTID模式的實(shí)例上進(jìn)行mysql_upgrade.

因?yàn)閙ysql_upgrade的過程要?jiǎng)?chuàng)建或修改系統(tǒng)表,而系統(tǒng)表時(shí)非事務(wù)引擎,所以不建議在開啟GTID模式的實(shí)例上使用帶有--write-binlog選項(xiàng)的mysql_upgrade。

(6)一旦在給定的MySQL實(shí)例中提交了事務(wù),具有相同GTID的事務(wù)便會(huì)被該服務(wù)器忽略。而且,在主實(shí)例上提交的事務(wù)在從庫上只可以應(yīng)用一次。

-----主要內(nèi)容參考梳理于網(wǎng)絡(luò)知識(shí),此短文僅為學(xué)習(xí)筆記,在此原創(chuàng)作者感謝!

總結(jié)

以上是生活随笔為你收集整理的mysql gtid基础_MySQL 基础知识梳理学习(四)----GTID的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。