- 深入理解MySQL主從原理
- 高鵬
- 482字
- 2021-04-16 16:29:19
1.2.1 定義
· mysql.gtid_executed表:GTID持久化的介質,GTID模塊初始化的時候會讀取這個表作為獲取gtid_executed變量的基礎。
· gtid_executed變量:表示數據庫中執行了哪些GTID,它是一個處于內存中的GTID SET。show slave status 中的 Executed_Gtid_Set 和 show master status 中的Executed_Gtid_Set都來自它。
· gtid_purged變量:表示由于刪除binary log(如執行purge binary logfiles命令或者超過參數expire_logs_days設置),已經丟失的GTID Event,它是一個處于內存中的GTID SET。我們在搭建從庫時,通常需要使用set global gtid_purged命令設置本變量,用于表示這個備份已經執行了哪些GTID操作。需要注意的是,手動刪除binary log不會更新這個變量。
其中,gtid_executed變量和gtid_purged變量都是通過show global variables命令來獲取的。
這也是數據庫管理員通常能夠觀察到的幾種 GTID 信息,有了前文的描述,我們知道其中的mysql.gtid_executed表是一種GTID持久化的介質,gtid_executed變量和gtid_purged變量則對應了內部結構體Gtid_state中的executed_gtids和lost_gtids內存數據,它們分別表示數據庫執行了哪些GTID操作,又有哪些GTID操作由于刪除binary log已經丟失了。
這里需要達成一個共識:gtid_executed變量一定是實時更新的,不管是主庫還是從庫。下面將分為主庫修改時機、從庫修改時機、通用修改時機三部分討論。
后面的介紹都約定在打開GTID的情況下。圖1-1中的灰色部分為常見的配置,讀者可以對它們的更改時機有一個整體的把握,為后面的深入學習打好基礎。

圖1-1
- Advanced Machine Learning with Python
- Visual C++程序設計學習筆記
- 零基礎學C++程序設計
- ASP.NET Core 2 and Vue.js
- Learning Laravel 4 Application Development
- 琢石成器:Windows環境下32位匯編語言程序設計
- Unity 5 for Android Essentials
- ExtJS高級程序設計
- Mastering Business Intelligence with MicroStrategy
- Learning AngularJS for .NET Developers
- 編寫高質量代碼:改善Objective-C程序的61個建議
- C#程序設計基礎入門教程
- Java 11 and 12:New Features
- 網絡綜合布線與組網實戰指南
- Managing Windows Servers with Chef