gtid_executed
およびgtid_purged
変数はデータベースエンジンに格納されます。これらが単なるランタイム変数の場合、どのように正確に初期化されますか?
特定のストレージエンジンの一部ではありません。 GTID変数は、次のコマンドを実行して確認できます。
SHOW GLOBAL VARIABLES LIKE 'gtid%';
または
SELECT * FROM information_schema.global_variables
WHERE variable_name LIKE 'gtid%';
DBサーバーでRESET MASTER
を実行すると、これらの値は空白になります。
MySQLドキュメント について gtid_executed
RESET MASTERを発行すると、この変数のグローバル値(セッション値ではない)が空の文字列にリセットされます。 GTIDは、RESET MASTERによってセットがクリアされた場合を除いて、このセットから削除されません。サーバーがシャットダウンされ、すべてのバイナリログが削除された場合も、セットは消去されます。
MySQLドキュメント について (gtid_purged について
RESET MASTERを発行すると、この変数の値が空の文字列にリセットされます。
SQLステートメントが実行されると、 gtid_executed がGTIDセット値で更新されます。
MySQLドキュメント について gtid_executed
サーバーが起動すると、@@ global.gtid_executedは次の2つのセットの和集合に初期化されます。
最新のバイナリログのPrevious_gtids_log_eventにリストされているGTID
最新のバイナリログのすべてのGtid_log_eventで見つかったGTID。
その後、トランザクションが実行されると、GTIDがセットに追加されます。
gtid_purged は、空白の場合にのみ設定できます。通常、この変数は、ソースでGTIDが有効になっているmysqldumpのリロード中に設定されます。
gtid_executed
およびgtid_purged
を検索します。あなたはおそらくいくつかの掘り下げを行う必要がありますが、それは私が行きたかった限りでは、幸運です。