溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MYSQL_GTID的示例分析

發(fā)布時間:2021-11-08 09:27:53 來源:億速云 閱讀:162 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章給大家分享的是有關(guān)MYSQL_GTID的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

一、GTID概述
  GTID是MYSQL5.6新增的特性,GTID(Global Transaction Identifier)全稱為全局事務(wù)標(biāo)示符,用以數(shù)據(jù)庫實例事務(wù)唯一標(biāo)識,其組成主要是source_id和transaction_id 即GTID = source_id:transaction_id。其中source_id是數(shù)據(jù)庫啟動自動生成的數(shù)據(jù)庫實例唯一標(biāo)識,保存在auto.cnf中,而transaction_id則是事務(wù)執(zhí)行的序列號。
二、GTID優(yōu)缺點
  優(yōu)點:
    復(fù)制安全性更高,一個事務(wù)在每個實例上只執(zhí)行一次;
    故障切換簡單,可通過設(shè)置MASTER_AUTO_POSITION=1,而非master_log_file和master_log_pos來建立主從關(guān)系;
    可根據(jù)GTID確定事務(wù)最早提交的實例;
  缺點:
    組復(fù)制中,必須要求統(tǒng)一開啟GTID或者關(guān)閉GTID;
    不支持復(fù)制create table table_name select ... from table_name_xx ;
    不支持create temporary table和drop temporary table;
    不支持sql_slave_skip_counter,可通過set global gtid_next='' 跳過;
    從庫和主庫都必須設(shè)置log_slave_updates
三、GTID工作原理
  1、master更新數(shù)據(jù)時,會在事務(wù)前產(chǎn)生GTID,一同記錄到binlog日志中。
  2、slave端的i/o 線程將變更的binlog,寫入到本地的relay log中。
  3、sql線程從relay log中獲取GTID,然后對比slave端的binlog是否有記錄。
  4、如果有記錄,說明該GTID的事務(wù)已經(jīng)執(zhí)行,slave會忽略。
  5、如果沒有記錄,slave就會從relay log中執(zhí)行該GTID的事務(wù),并記錄到binlog。
  6、在解析過程中會判斷是否有主鍵,如果沒有就用二級索引,如果沒有就用全部掃描。
四、GTID開啟和關(guān)閉
  gtid_mode=ON(必選)
  log_bin=ON(必選)
  log-slave-updates=ON(必選)
  enforce-gtid-consistency(必選)
  log-bin = /home/mysql/mysql-bin(必選)
  binlog_format = MIXED(必選mixed或者row)
  ## 
  change master to master_host = 'ipaddr',master_port = 3306,master_user = 'username',master_password='password',master_auto_position = 1;
五、GTID適用場景
  1、搭建高可用架構(gòu),方便主從切換后,新的從庫重新指定主庫(例如一主二從的結(jié)構(gòu),A為mater,B為Slave,C為Slave,A宕機切換到B后,C重新指定主庫為B)
  2、不經(jīng)常使用create table table_name select * from table_name/create temporary table/update t1,t2 where ...這種語句的場合
六、GTID相關(guān)參數(shù)

參數(shù) comment
gtid_executed 執(zhí)行過的所有GTID,可通過reset master重置
gtid_purged 丟棄掉的GTID,設(shè)置后從而導(dǎo)致slave不會再去master請求這些GTIDs,并且Executed_Gtid_Set為空時,才可以設(shè)置此值
gtid_mode gtid模式
gtid_next session級別的變量,下一個gtid
gtid_owned 正在運行的gtid
enforce_gtid_consistency 保證GTID安全的參數(shù)

感謝各位的閱讀!關(guān)于“MYSQL_GTID的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI