欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql8 gtid主從復制

錢諍諍2年前11瀏覽0評論

MySQL 8.0版本引入了全局事務標識(GTID)的概念,使得主從復制更加可靠和可維護。GTID是一個全局唯一的標識符,用于標識一次事務。GTID跟蹤了在哪個服務器上執行了哪些事務,從而使得主從復制極其靈活,并可以有效的避免數據沖突。

要開啟GTID主從復制,我們需要在主庫和從庫上都添加一些配置項。主庫需要添加以下配置項:

# 開啟GTID模式
gtid_mode = ON
# 啟動GTID主從復制
enforce_gtid_consistency = true

從庫需要添加以下配置項:

# 開啟GTID模式
gtid_mode = ON
# 從庫從哪個位置開始同步數據,這里是主庫上的第一個事務
gtid_slave_pos = 1-1-1

在主庫上添加新的數據時,每個事務都會被自動分配一個全局唯一的GTID,這個GTID會被寫入到事務日志(binlog)中。從庫就可以通過讀取主庫的binlog,來獲取GTID并在自己的復制日志中應用這些事務,實現數據同步。

# 查看主庫上的GTID
mysql>SHOW MASTER STATUS;
# +------------------+----------+--------------+------------------+-------------------+
# | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
# +------------------+----------+--------------+------------------+-------------------+
# | mysql-bin.000001 |      599 |              |                  |                   |
# +------------------+----------+--------------+------------------+-------------------+
# 查看從庫上的GTID
mysql>SHOW SLAVE STATUS\G;
# *************************** 1. row ***************************
#                Slave_IO_State: Waiting for master to send event
#                   Master_Host: 192.168.1.1
#                   Master_User: repl
#                   Master_Port: 3306
#                 Connect_Retry: 60
#               Master_Log_File: mysql-bin.000001
#           Read_Master_Log_Pos: 599
#                Relay_Log_File: mysqld-relay-bin.000002
#                 Relay_Log_Pos: 319
#         Relay_Master_Log_File: mysql-bin.000001
#              Slave_IO_Running: Yes
#             Slave_SQL_Running: Yes
# ...
#                  Executed_GTID_Set: 11ab0527-a348-11e9-a7f2-0242ac110002:1-2
# ...

可以看到,主庫和從庫上都有各自的GTID,代表的是它們所執行的事務的序號。

GTID最大的好處是,它使得主從復制斷電后恢復更為可靠。基于GTID進行復制,確保了從庫始終可以獲取到主庫上未被復制的事務記錄,并且可以精確的記錄從庫復制的位置。