国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > 文庫 > 正文

說GTID - GTID的組成和存儲

2024-09-07 22:12:35
字體:
來源:轉載
供稿:網友
        GTID是什么
 
       GTID(Global Transaction Identifier)是事務在第一次提交時獲取到的唯一標識,該標識在整個的復制拓撲中具有唯一性。
 
       GTID組成
 
       GTID = source_id:transaction_id(c4e5d4a0-a9be-11e9-b444-080027f22add:7)
 
      直觀看,GTID有兩部分組成,source_id和transaction_id。source_id代表事務提交時所在的Master實例,一般是由該實例的全局系統變量server_uuid表示;transaction_id代表事務在該實例上提交的順序,其為大于或等于1的正向遞增序列。
 
      GTID集合
 
       集合,是由一個或多個確定的元素所構成的整體。GTID集合,顧名思義,這其中的元素就是GTID,由單個,或多個GTID,又或由一個范圍的GTID組成。如,3E11FA47-71CA-11E1-9E33-C80AA9429562:1-3:11:47-49。在實例中全局系統變量gtid_executed和gtid_purged往往存儲的就是GTID集合。
 
GTID集合也是有格式的,如下:
 
gtid_set:
 
    uuid_set [, uuid_set] ...
 
    | ''
 
uuid_set:
 
    uuid:interval[:interval]...
 
uuid:
 
    hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh
 
h:
 
    [0-9|A-F]
 
interval:
 
    n[-n]
 
    (n >= 1)
 
GTID存儲
 
GTID是存儲在系統表mysql.gtid_executed中的,該表一行記錄代表單個GTID,或GTID集合。
 
+--------------------------------------+----------------+--------------+
 
| source_uuid                          | interval_start | interval_end |
 
+--------------------------------------+----------------+--------------+
 
| aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa |              1 |           72 |
 
| c4e5d4a0-a9be-11e9-b444-080027f22add |         101005 |       188707 |
 
+--------------------------------------+----------------+--------------+
 
GTID何時被寫入mysql.gtid_executed表呢…,這取決于二進制日志是否開啟。
 
當禁用二進制日志時(該情況一般出現在Slave上),MySQL在執行(回放)完GTID(事務)后,同時將該GTID寫入mysql.gtid_executed表。在5.7版本中,對于DML語句,該過程是原子性的,但對于DDL語句不是原子性的(在8.0版本中,DML和DDL語句都是原子性的了。)。
當開啟二進制日志時,在二進制日志輪換,或實例關閉時,MySQL會將之前二進制日志中全部GTID寫入mysql.gtid_executed表。若MySQL意外關閉了,在恢復(recovery)階段,沒寫入的GTID會再次被寫入mysql.gtid_executed(當然關閉了二進制日志,恢復時,沒寫入的GTID是不能恢復的,之后復制也是無法繼續的)。
不難看出啟用二進制日志時,mysql.gtid_executed表中的GTID不能代表全部的事務,該信息則是由全局系統變量@@GLOBAL.gtid_executed提供的。
 
[root@mysql.sock][(none)]> select * from mysql.gtid_executed;
 
+--------------------------------------+----------------+--------------+
 
| source_uuid                          | interval_start | interval_end |
 
+--------------------------------------+----------------+--------------+
 
| aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa |              1 |           72 |
 
| c4e5d4a0-a9be-11e9-b444-080027f22add |         101005 |       188707 |
 
+--------------------------------------+----------------+--------------+
 
4 rows in set (0.00 sec)
 
[root@mysql.sock][(none)]> select @@global.gtid_executed;
 
+-----------------------------------------------------------------------
 
| @@global.gtid_executed                                               |
 
+-----------------------------------------------------------------------
 
| aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-76:,
 
c4e5d4a0-a9be-11e9-b444-080027f22add:101005-338847 |
 
+-----------------------------------------------------------------------
 
1 row in set (0.00 sec)
 
注意,reset master會將mysql.gtid_executed表清空。
 
[root@mysql.sock][(none)]> select * from mysql.gtid_executed;
 
+--------------------------------------+----------------+--------------+
 
| source_uuid                          | interval_start | interval_end |
 
+--------------------------------------+----------------+--------------+
 
| c4e5d4a0-a9be-11e9-b444-080027f22add |              1 |       188708 |
 
+--------------------------------------+----------------+--------------+
 
1 row in set (0.00 sec)
 
[root@mysql.sock][(none)]> select @@global.gtid_executed;
 
+-----------------------------------------------+
 
| @@global.gtid_executed                        |
 
+-----------------------------------------------+
 
| c4e5d4a0-a9be-11e9-b444-080027f22add:1-888712 |
 
+-----------------------------------------------+
 
1 row in set (0.00 sec)
 
[root@mysql.sock][(none)]> select @@global.gtid_purged;
 
+-----------------------------------------------+
 
| @@global.gtid_purged                          |
 
+-----------------------------------------------+
 
| c4e5d4a0-a9be-11e9-b444-080027f22add:1-101004 |
 
+-----------------------------------------------+
 
1 row in set (0.00 sec)
 
[root@mysql.sock][(none)]> reset master;
 
Query OK, 0 rows affected (0.04 sec)
 
[root@mysql.sock][(none)]> select * from mysql.gtid_executed;
 
Empty set (0.00 sec)
 
[root@mysql.sock][(none)]> select @@global.gtid_executed;
 
+------------------------+
 
| @@global.gtid_executed |
 
+------------------------+
 
|                        |
 
+------------------------+
 
1 row in set (0.00 sec)
 
[root@mysql.sock][(none)]> select @@global.gtid_purged;
 
+----------------------+
 
| @@global.gtid_purged |
 
+----------------------+
 
|                      |
 
+----------------------+
 
1 row in set (0.00 sec)

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿图什市| 辛集市| 闽清县| 曲阳县| 大英县| 搜索| 新蔡县| 波密县| 湖口县| 晋州市| 闽清县| 金川县| 富民县| 左云县| 旺苍县| 棋牌| 交口县| 新和县| 凤山市| 周至县| 吉安县| 郎溪县| 张掖市| 那坡县| 视频| 咸宁市| 江达县| 迁安市| 尉氏县| 沁阳市| 女性| 湘西| 襄垣县| 堆龙德庆县| 微博| 德昌县| 运城市| 綦江县| 区。| 淮南市| 绥滨县|