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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql gtid深入_深入理解MySQL 5.7 GTID系列(四):mysql.gtid_executedPREVIOUS GTID EVENT

發布時間:2025/3/12 数据库 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql gtid深入_深入理解MySQL 5.7 GTID系列(四):mysql.gtid_executedPREVIOUS GTID EVENT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之所以把MySQL.GTID_EXECUTED表的作用和PREVIOUS GTID EVENT的改變放到一起進行描述是因為它們后面文章探討的基礎。這部分使用到了我自己使用C語言寫的原生BINLOG解析工具INFOBIN。

一、GTID EVENT

為什么要先描述什么是GTID EVENT呢?因為后面會用到,實際上在其中核心元素就是一個形如:

31704d8a-da74-11e7-b6bf-52540a7d243:100009

的一個GTID 處于整個事務EVENT中的開始,用于描述這個事務的GTID 是多少,當然在5.7中為了支持MTS其中還封裝了LAST_COMMIT/SEQUENCE_NUMBER。那么使用INFOBIN工具查看一個INSERT單條語句完整事務的EVENT包括如下:

>Gtid Event:Pos:234(0Xea) N_pos:299(0X12b) Time:1513135186Event_size:65(bytes) Gtid:31704d8a-da74-11e7-b6bf-52540a7d243:100009last_committed=0sequence_number=1-->Query Event:Pos:299(0X12b) N_Pos:371(0X173) Time:1513135186Event_size:72(bytes) Exe_time:0Use_db:test Statment(35b-trun):BEGIN/*!Trx begin!*/Gno:100009---->MapEvent:Pos371(0X173) N_pos:415(0X19f) Time:1513135186Event_size:44(bytes) TABLE_ID:108DB_NAME:test TABLE_NAME:a Gno:100009------>Insert Event:Pos:415(0X19f) N_pos:455(0X1c7) Time:1513135186Event_size:40(bytes) Dml on table: test.a? table_id:108Gno:100009>Xid Event:Pos:455(0X1c7) N_Pos:486(0X1e6) Time:1513135186Event_size:31(bytes) COMMIT;/*!Trx end*/Gno:100009

當然也可以使用MySQLBINLOG進行分析,只是格式稍微不那么友好。

二、GTID_EXECUTED表的作用

這一部分是重點中的重點,也是我以前一直疑惑的,請大家細細品讀。

官方文檔這樣描述GTID_EXECUTED表

BeginningwithMySQL5.7.5, GTIDs are storedina table named gtid_executed,inthe mysqldatabase. A rowinthistable contains,foreach GTID or setofGTIDs that it represents, the UUIDoftheoriginating server, and the starting and ending transaction IDsofthe set;fora row referencing only asingle GTID, these last two values are the same.

也就是說GTID_EXECUTED表是GTID持久化的一個工具,如前文所描述GTID_STATE中的

GET_EXECUTED_GTIDS/GET_LOST_GTIDS/GET_GTIDS_ONLY_IN_TABLE/GET_PREVIOUS_GTIDS_LOGGED這些數據都是存儲在內存中的,那么在數據庫重啟后需要進行初始化,那么這需要讀取GTID持久化的介質,我們可以發現GTID_EXECUTED是一個

INNODB表建表語句如下,并且我們可以手動更改它,但是千萬不要這么干:

Table: gtid_executedCreate Table: CREATE TABLE`gtid_executed`(`source_uuid`char(36) NOT NULL COMMENT'uuid of the source where the transaction was originally executed.',`interval_start`bigint(20) NOT NULL COMMENT'First number of interval.',`interval_end`bigint(20) NOT NULL COMMENT'Last number of interval.',? PRIMARY KEY (`source_uuid`,`interval_start`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0

那么在5.7.5以前沒有GTID_EXECUTED表不是也沒有問題嗎?其實除了GTID_EXECUTED表以外我們還有一個GTID持久化的介質那就是BINLOG中的GTID EVENT。所以總結一下GTID持久化介質:

GTID_EXECUTED表

BINLOG中的GTID? EVENT

那么既然有了BINLOG的GTID EVENT進行持久化那么為什么還需要GTID_EXECUTED表呢?這實際上就是5.7.5過后的一個優化,我們可以反過來思考在5.6中如果使用了GTID 做從庫,從庫如果不開啟BINLOG并且同時設置LOG_SLAVE_UPDATES=TURE那么從庫的執行過的GTID事務是沒有辦法持久化的。我們來一段5.6官方文檔對于搭建GTID從庫的其中一步:

Step3: Restart both serverswithGTIDs enabled. To enable binary loggingwithglobaltransaction identifiers, each server must be startedwithGTID mode, binary logging, slave updatelogging enabled, andwithstatements that are unsafeforGTID-based replication disabled. In addition,you should prevent unwanted or accidental updatesfrombeing performed on either server by startingbothinread-only mode. This means that both servers must be startedwith(at least) the options showninthe following invocationofmysqld_safe:shell> mysqld_safe --gtid_mode=ON --log-bin --log-slave-updates --enforce-gtid-consistency &

開啟BINLOG同時設置設置LOG_SLAVE_UPDATES=TURE必然造成一個問題,實際上從庫很多時候我們是不需要做級聯SLAVE,設置LOG_SLAVE_UPDATES=TURE會造成需要額外的空間和性能開銷。自然這種情況下我們需要另外的一種GTID持久化介質,而并不是BINLOG中的GTID EVENT。為了解決這個問題,5.7中GTID_EXECUTED表應運而生了。然而GTID_EXECUTED表是否需要實時更新呢?顯然在slave端不開啟BINLOG或者開啟BINLOG不設置LOG_SLAVE_UPDATES=TURE的情況下它需要實時更新,因為I/OTHREAD執行過得GTID是必須持久化的,而在主庫上因為有BINLOG的GTID EVENT的存在他是不需要實時更新的,這樣不同的對待方式也能夠減輕負擔提高性能。

總結

以上是生活随笔為你收集整理的mysql gtid深入_深入理解MySQL 5.7 GTID系列(四):mysql.gtid_executedPREVIOUS GTID EVENT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品大全 | 比利时xxxx性hd极品 | 国产欧美久久久久 | 污视频导航 | 国产伦理一区二区三区 | 黑人精品一区二区 | www四虎com | 在线sese| 喷水在线观看 | 亚洲成av人片久久 | 在线观看亚洲免费视频 | 国产在线久| 日本人dh亚洲人ⅹxx | 人人草人人爽 | 国产一级淫片a | 精品亚洲一区二区三区四区五区高 | 香蕉久久夜色 | 夜夜嗨av一区二区三区 | 国产91在线视频观看 | 青青草视频偷拍 | 黄色在线播放网站 | 九色91popny蝌蚪新疆 | 国产微拍精品 | 成人高潮片免费 | 99热这里只有精品8 国产一卡二 | 人人做人人爱人人爽 | 亚洲一区二区乱码 | 亚洲精品色图 | 国产精品二区三区 | 91在线精品一区二区三区 | 无码国产精品高潮久久99 | 变态另类一区 | 国产精品9191 | 打屁股av | 四虎黄色影视 | 我们的2018在线观看免费高清 | 久久一区二区电影 | 亚洲女人天堂网 | 国产在线伊人 | 亚洲精品乱码久久久久久写真 | 黄色国产在线播放 | 高h乱l高辣h文短篇h | 星空无限mv国产剧入选 | 久久精品一区二区国产 | 亚洲精品av中文字幕在线在线 | 欧美国产一二三区 | 欧美亚日韩 | 农村妇女精品一区二区 | 暖暖视频日本 | 91网站免费 | 日韩午夜在线观看 | 岛国一区| 午夜两性网 | 伦理欧美 | 中文字幕人成乱码熟女香港 | 美女免费网站 | 最新中文字幕av | 91精品国产综合久久精品 | 日韩av中文在线 | 成人福利在线免费观看 | 伊人草草 | 国产精品正在播放 | 婷婷影院在线观看 | 国产一区亚洲二区三区 | 欧美性生交xxxxxdddd | 成人精品福利视频 | 黄色一级片欧美 | 最新的黄色网址 | www.久久综合 | 麻豆视频网站入口 | 白石茉莉奈黑人 | h片在线播放| 国产三级网站 | 久草www | 青草视频在线观看免费 | 欧美日韩亚洲天堂 | 欧美国产日韩在线视频 | 国产不卡毛片 | 国产剧情自拍 | 亚洲国产伊人 | 久久av无码精品人妻系列试探 | 青青青在线视频观看 | 亚洲一区二区中文字幕 | 国产一级淫 | 国产午夜精品一区二区三区 | xxx精品| 18国产免费视频 | 成人性生交大片免费看中文 | xxxx在线播放 | 午夜两性视频 | 天天曰天天干 | 色精品视频 | 最近中文字幕在线中文高清版 | 五月婷激情| 日韩高清在线播放 | 永久免费看片在线观看 | 夜夜干夜夜 | 91久久人澡人人添人人爽欧美 | 87福利视频 |