組複製官方文檔翻譯(Getting Started)

Deploying Group Replication in Single-Primary Mode

組中的每個服務器實例可以在獨立的物理機器上運行,也可以在同一臺機器上運行。本節介紹如何在一臺物理機上創建具有三個MySQL Server實例的複製組。這意味着需要三個數據目錄,每個MySQL Server實例佔用一個,您需要獨立配置每個實例。

本教程介紹如何使用組複製插件獲取和部署MySQL Server,如何在創建組之前配置每個服務器實例以及如何使用性能模式監視來驗證一切是否正常工作。
 

Deploying Instances forGroup Replication


第一步是部署MySQL服務器的三個實例。組複製是MySQL Server 5.7.17及更高版本提供的內置MySQL插件。有關MySQL插件的更多背景信息,請參見第6.5節“MySQL服務器插件”。一旦你下載了MySQL服務器包,解壓縮它並安裝二進制文件。此過程假定MySQL Server已下載並解壓縮到當前目錄,名爲mysql-5.7的目錄下。由於本教程使用一個物理機,每個MySQL實例都需要一個特定的數據目錄,用於存儲實例的數據。在名爲data的目錄中創建數據目錄,並初始化每個目錄。
mkdir data
mysql-5.7/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-5.7 --datadir=$PWD/data/s1
mysql-5.7/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-5.7 --datadir=$PWD/data/s2
mysql-5.7/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-5.7 --datadir=$PWD/data/s3
內部data / s1data / s2data / s3是一個初始化的數據目錄,包含mysql系統數據庫和相關表等。要了解有關初始化過程的更多信息,請參見第2.10.1.1節“使用mysqld手動初始化數據目錄”。
警告
不要在生產環境中使用--initialize-insecure,它只用於簡化教程。有關安全設置的更多信息,請參見第19.5節“組複製安全性”。

Configuring an Instancefor Group Replication

本節介紹要用於組複製的MySQL Server實例所需的設置。有關背景信息,請參見第19.7.2節“限制”。
Group Replication Server Settings
要安裝和使用組複製插件,必須正確配置MySQL服務器實例。建議將配置存儲在my.cnf文件中。有關詳細信息,請參見第5.2.6節“使用選件文件”。除非另有說明,以下是組中第一個實例的配置,在此過程中稱爲s1。以下部分顯示了示例服務器配置。
[mysqld]
 
# server configuration
datadir=<full_path_to_data>/data/s1
basedir=<full_path_to_bin>/mysql-5.7/
 
port=24801
socket=<full_path_to_sock_dir>/s1.sock
這些設置將MySQL服務器配置爲使用先前創建的數據目錄以及服務器應打開哪個端口並開始偵聽傳入連接。
注意
使用非默認端口24801,因爲在本教程中,三個服務器實例使用相同的主機名。在具有三個不同機器的設置中,這不是必需的。
Replication Framework
以下設置根據MySQL組複製要求配置複製。
server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
這些設置將服務器配置爲使用唯一標識號1,以啓用全局事務標識符,並將複製元數據存儲在系統表(而不是文件)中。此外,它指示服務器打開二進制日誌記錄,使用基於行的格式和禁用二進制日誌事件校驗和。有關更多詳細信息,請參見第19.7.2節“限制”。
Group Replication Settings
此時,my.cnf文件確保服務器已配置,並被指示在給定配置下實例化複製基礎結構。以下部分配置服務器的組複製設置。
 
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "127.0.0.1:24901"
loose-group_replication_group_seeds= "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"
loose-group_replication_bootstrap_group= off
注意
用於上面group replication的變量的loose前綴指示服務器繼續啓動,如果在服務器啓動時尚未加載組複製插件。
1指示服務器對於每個事務它必須收集寫集合(write set)並且使用XXHASH64散列算法將其編碼爲散列。
 
2行告訴插件,它正在加入或創建的組名爲“aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa”。
3行指示插件在服務器啓動時不自動啓動操作。
4行告訴插件使用IP地址127.0.0.1localhost,端口24901用於來自組中其他成員的傳入連接。
重要
服務器在此端口上偵聽成員到成員的連接。此端口不能用於用戶應用程序,在運行組複製時,必須保留此端口用於組的不同成員之間的內部通信。
group_replication_local_address配置的本地地址必須可供所有組成員訪問。例如,如果每個服務器實例都位於不同的計算機上,則使用計算機的IP和端口,例如10.0.0.1:33061 group_replication_local_address的推薦端口爲33061,但在本教程中,我們使用在一臺機器上運行的三個服務器實例,因此使用端口2490124903
5行告訴插件,應該聯繫這些主機和端口上的以下成員,因爲它需要加入組。這些是種子成員,當此成員想要連接到組時使用。即將加入組的成員會先跟這些種子種的一個聯絡,然後它要求組重新配置以允許在組中接受加入者。請注意,此選項不需要列出組中的所有成員,而只是新服務器加入時需要聯繫的服務器列表。
啓動組的服務器不使用此選項,因爲它是初始服務器,因此它負責引導組。第二個加入的服務器加入時只需詢問其中一個節點和其他成員是否可以加入即可,這時組就擴大了。第三個服務器加入可以請求這兩個加入,然後組再次擴展。後續服務器在加入時重複此過程。
 
警告
同時加入多個服務器時,請確保它們指向已在組中的種子成員。不要使用也加入羣組作爲種子的成員,因爲他們可能在聯繫時尚未加入羣組。優良做法是首先啓動引導成員,並讓它創建組。然後使其成爲正在加入的其餘成員的種子成員。這確保了有其他成員需要加入時,該組已經具有可用的組格式。不支持創建組並同時加入多個成員。它可能工作,但有可能導致操作競爭,從而導致加入組的行爲最終出現錯誤或超時。
6行指示插件是否要引導組。
重要
此選項只能在任何時候在一個服務器實例上使用,通常是首次引導組時(或在整個組被關閉並重新備份的情況下)。如果您多次引導組,例如,當多個服務器實例設置了此選項時,它們可能會創建一個人爲裂腦情景,其中存在兩個具有相同名稱的不同組。在第一個服務器實例聯機後禁用此選項。
組中的所有服務器的配置非常相似。您需要更改每個服務器的詳細信息(例如server_id,datadir,group_replication_local_address)。這將在本教程的後面。

User Credentials


組複製依賴於異步複製協議,以便能夠運行分佈式恢復。因此,您需要設置一個複製用戶,以便能夠建立直接成員到成員恢復通道。

啓動服務器:
 
mysql-5.7/bin/mysqld --defaults-file=data/s1/s1.cnf
 
禁用二進制日誌記錄,創建具有正確權限的用戶,並保存組複製恢復通道的憑據。
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' \\
FOR CHANNEL 'group_replication_recovery';
上面看到的最後一行配置此服務器使用給定憑據下次需要從另一個成員恢復其狀態。分佈式恢復是加入組的服務器執行的第一步。如果未正確設置這些憑據,則服務器無法運行恢復協議,並且最終無法加入組。

Launching GroupReplication

假設服務器s1已經按照上面的說明配置和啓動,下一步是安裝組複製插件。連接到服務器併發出以下命令:
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
要檢查插件是否已成功安裝,請發出SHOW PLUGINS;並檢查輸出。它應該顯示如下:
mysql> SHOW PLUGINS;
+----------------------------+----------+--------------------+----------------------+-------------+
| Name                       | Status   | Type               | Library              | License     |
+----------------------------+----------+--------------------+----------------------+-------------+
| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL                 | PROPRIETARY |
 
(...)
 
| group_replication          | ACTIVE   | GROUP REPLICATION  | group_replication.so | PROPRIETARY |
+----------------------------+----------+--------------------+----------------------+-------------+
要啓動組,請指示服務器s1引導組,然後啓動組複製。此引導應僅由單個服務器完成,該服務器啓動組並且只啓動一次。這就是爲什麼引導配置選項的值未保存在配置文件中的原因。如果將其保存在配置文件中,則在重新啓動時,服務器會自動引導具有相同名稱的第二個組。這將導致兩個不同的組具有相同的名稱。同樣的推理適用於停止和重新啓動插件。
 
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
START GROUP_REPLICATION語句返回後,組已啓動。您可以檢查該組現在是否已創建,並且其中有一個成員:
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+---------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE  |
+---------------------------+--------------------------------------+-------------+-------------+---------------+
| group_replication_applier | ce9be252-2b71-11e6-b8f4-00212844f856 | myhost      |       24801 | ONLINE        |
+---------------------------+--------------------------------------+-------------+-------------+---------------+
1 row in set (0,00 sec)
此表中的信息確認組中有唯一標識符ce9be252-2b71-11e6-b8f4-00212844f856的成員,它是在線並且在myhost偵聽端口24801上的客戶端連接。
爲了演示服務器確實在一個組中,並且它能夠處理加載,創建一個表並向其中添加一些內容。
mysql> CREATE DATABASE test;
Query OK, 1 row affected (0,00 sec)
 
mysql> use test
Database changed
mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL);
Query OK, 0 rows affected (0,00 sec)
 
mysql> INSERT INTO t1 VALUES (1, 'Luis');
Query OK, 1 row affected (0,01 sec)
檢查表t1和二進制日誌的內容。
mysql> SELECT * FROM t1;
+----+------+
| c1 | c2   |
+----+------+
|  1 | Luis |
+----+------+
1 row in set (0,00 sec)
 
mysql> SHOW BINLOG EVENTS;
+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------+
| Log_name      | Pos | Event_type     | Server_id | End_log_pos | Info                                                               |
+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------+
| binlog.000001 |   4 | Format_desc    |         1 |         123 | Server ver: 5.7.17-gr080-log, Binlog ver: 4                        |
| binlog.000001 | 123 | Previous_gtids |         1 |         150 |                                                                    |
| binlog.000001 | 150 | Gtid           |         1 |         211 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1'  |
| binlog.000001 | 211 | Query          |         1 |         270 | BEGIN                                                              |
| binlog.000001 | 270 | View_change    |         1 |         369 | view_id=14724817264259180:1                                        |
| binlog.000001 | 369 | Query          |         1 |         434 | COMMIT                                                             |
| binlog.000001 | 434 | Gtid           |         1 |         495 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:2'  |
| binlog.000001 | 495 | Query          |         1 |         585 | CREATE DATABASE test                                               |
| binlog.000001 | 585 | Gtid           |         1 |         646 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:3'  |
| binlog.000001 | 646 | Query          |         1 |         770 | use `test`; CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL) |
| binlog.000001 | 770 | Gtid           |         1 |         831 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:4'  |
| binlog.000001 | 831 | Query          |         1 |         899 | BEGIN                                                              |
| binlog.000001 | 899 | Table_map      |         1 |         942 | table_id: 108 (test.t1)                                            |
| binlog.000001 | 942 | Write_rows     |         1 |         984 | table_id: 108 flags: STMT_END_F                                    |
| binlog.000001 | 984 | Xid            |         1 |        1011 | COMMIT /* xid=38 */                                                |
+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------+
15 rows in set (0,00 sec)
如上所示,創建了數據庫和表對象,並將其相應的DDL語句寫入二進制日誌。此外,數據被插入到表中並被寫入二進制日誌。當組成員增長並且新成員嘗試趕上並變爲在線時執行分佈式恢復時,二進制日誌條目的重要性將在以下部分中說明。

Adding Instances to theGroup

此時,組中有一個成員,服務器s1,其中有一些數據。現在是通過添加先前配置的其他兩個服務器來擴展組的時候了。
Adding a Second Instance
爲了添加第二個實例,服務器s2,首先爲它創建配置文件。配置類似於用於服務器s1的配置,除了諸如數據目錄的位置,s2將要監聽的端口或其server_id之類的事情之外。這些不同的行在下面的列表中突出顯示。
mysqld]
 
# server configuration
datadir=<full_path_to_data>/data/s2
basedir=<full_path_to_bin>/mysql-5.7/
 
port=24802
socket=<full_path_to_sock_dir>/s2.sock
 
#
# Replication configuration parameters
#
server_id=2
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
 
#
# Group Replication configuration
#
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "127.0.0.1:24902"
loose-group_replication_group_seeds= "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"
loose-group_replication_bootstrap_group= off
與服務器s1的過程類似,在配置文件就位的情況下啓動服務器。
mysql-5.7/bin/mysqld --defaults-file=data/s2/s2.cnf
然後按如下所示配置恢復憑據。命令與設置服務器s1時使用的命令相同,因爲用戶在組中共享。
mysql> SET SQL_LOG_BIN=0;
Query OK, 0 rows affected (0,00 sec)
 
mysql> CREATE USER rpl_user@'%';
Query OK, 0 rows affected (0,00 sec)
 
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';
Query OK, 0 rows affected, 1 warning (0,00 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0,00 sec)
 
mysql> SET SQL_LOG_BIN=1;
Query OK, 0 rows affected (0,00 sec)
 
mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' \\
FOR CHANNEL 'group_replication_recovery';
Query OK, 0 rows affected, 2 warnings (0,01 sec)
安裝組複製插件,並啓動將服務器加入組的過程。以下示例以部署服務器s1時使用的相同方式安裝插件。
mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
Query OK, 0 rows affected (0,01 sec)
將服務器s2添加到組。
mysql> START GROUP_REPLICATION;
Query OK, 0 rows affected (44,88 sec)
與以前的步驟與在s1上執行的步驟相同,這裏有一個區別,因爲您不發出SET GLOBAL group_replication_bootstrap_group = ON;在啓動組複製之前,因爲該組已由服務器s1創建和引導。此時,服務器s2只需要添加到已經存在的組中。
 
再次檢查performance_schema.replication_group_members表,可以看出組中現在有兩個ONLINE服務器。
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+---------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE  |
+---------------------------+--------------------------------------+-------------+-------------+---------------+
| group_replication_applier | 395409e1-6dfa-11e6-970b-00212844f856 | myhost       |       24801 | ONLINE       |
| group_replication_applier | ac39f1e6-6dfa-11e6-a69d-00212844f856 | myhost       |       24802 | ONLINE       |
+---------------------------+--------------------------------------+-------------+-------------+---------------+
2 rows in set (0,00 sec)
由於服務器s2也被標記爲ONLINE,它必須已經自動地趕上了服​​務器s1。驗證它確實與服務器s1同步如下。
mysql> SHOW DATABASES LIKE 'test';
+-----------------+
| Database (test) |
+-----------------+
| test            |
+-----------------+
1 row in set (0,00 sec)
 
mysql> SELECT * FROM test.t1;
+----+------+
| c1 | c2   |
+----+------+
|  1 | Luis |
+----+------+
1 row in set (0,00 sec)
 
mysql> SHOW BINLOG EVENTS;
+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
| Log_name      | Pos  | Event_type     | Server_id | End_log_pos | Info                                                               |
+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
| binlog.000001 |    4 | Format_desc    |         2 |         123 | Server ver: 5.7.17-log, Binlog ver: 4                              |
| binlog.000001 |  123 | Previous_gtids |         2 |         150 |                                                                    |
| binlog.000001 |  150 | Gtid           |         1 |         211 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1'  |
| binlog.000001 |  211 | Query          |         1 |         270 | BEGIN                                                              |
| binlog.000001 |  270 | View_change    |         1 |         369 | view_id=14724832985483517:1                                        |
| binlog.000001 |  369 | Query          |         1 |         434 | COMMIT                                                             |
| binlog.000001 |  434 | Gtid           |         1 |         495 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:2'  |
| binlog.000001 |  495 | Query          |         1 |         585 | CREATE DATABASE test                                               |
| binlog.000001 |  585 | Gtid           |         1 |         646 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:3'  |
| binlog.000001 |  646 | Query          |         1 |         770 | use `test`; CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL) |
| binlog.000001 |  770 | Gtid           |         1 |         831 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:4'  |
| binlog.000001 |  831 | Query          |         1 |         890 | BEGIN                                                              |
| binlog.000001 |  890 | Table_map      |         1 |         933 | table_id: 108 (test.t1)                                            |
| binlog.000001 |  933 | Write_rows     |         1 |         975 | table_id: 108 flags: STMT_END_F                                    |
| binlog.000001 |  975 | Xid            |         1 |        1002 | COMMIT /* xid=30 */                                                |
| binlog.000001 | 1002 | Gtid           |         1 |        1063 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:5'  |
| binlog.000001 | 1063 | Query          |         1 |        1122 | BEGIN                                                              |
| binlog.000001 | 1122 | View_change    |         1 |        1261 | view_id=14724832985483517:2                                        |
| binlog.000001 | 1261 | Query          |         1 |        1326 | COMMIT                                                             |
+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
19 rows in set (0,00 sec)
如上所示,第二個服務器已添加到組中,並且已自動從服務器s1複製了更改。根據分佈式恢復過程,這意味着剛剛加入組之後並且在被聲明爲在線之前,服務器s2自動地連接到服務器s1並且從其獲取丟失的數據。換句話說,它從s1的二進制日誌中複製了它缺少的事務,直到它加入組的時間點。
Adding a Additional Instances
向組添加其他實例與添加第二個服務器基本上是相同的步驟,只是配置必須更改爲服務器s2。總結所需的命令:
1.創建配置文件
[mysqld]
 
# server configuration
datadir=<full_path_to_data>/data/s3
basedir=<full_path_to_bin>/mysql-5.7/
 
port=24802
socket=<full_path_to_sock_dir>/s3.sock
 
#
# Replication configuration parameters
#
server_id=3
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
 
#
# Group Replication configuration
#
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "127.0.0.1:24903"
loose-group_replication_group_seeds= "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"
loose-group_replication_bootstrap_group= off
2.啓動服務器
mysql-5.7/bin/mysqld --defaults-file=data/s3/s3.cnf
3.配置group_replication_recovery通道的恢復憑據
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass'  \\
FOR CHANNEL 'group_replication_recovery';
4.安裝組複製插件並啓動它。
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
START GROUP_REPLICATION;
此時,服務器s3被引導並且正在運行,已經加入組並且趕上組中的其他服務器。查看performance_schema.replication_group_members表再次確認是這種情況。
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+---------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE  |
+---------------------------+--------------------------------------+-------------+-------------+---------------+
| group_replication_applier | 395409e1-6dfa-11e6-970b-00212844f856 | myhost      |       24801 | ONLINE        |
| group_replication_applier | 7eb217ff-6df3-11e6-966c-00212844f856 | myhost      |       24803 | ONLINE        |
| group_replication_applier | ac39f1e6-6dfa-11e6-a69d-00212844f856 | myhost      |       24802 | ONLINE        |
+---------------------------+--------------------------------------+-------------+-------------+---------------+
3 rows in set (0,00 sec)
在服務器s2或服務器s1上發出此相同的查詢會產生相同的結果。此外,您可以驗證服務器s3已經趕上:
mysql> SHOW DATABASES LIKE 'test';
+-----------------+
| Database (test) |
+-----------------+
| test            |
+-----------------+
1 row in set (0,00 sec)
 
mysql> SELECT * FROM test.t1;
+----+------+
| c1 | c2   |
+----+------+
|  1 | Luis |
+----+------+
1 row in set (0,00 sec)
 
mysql>  SHOW BINLOG EVENTS;
+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
| Log_name      | Pos  | Event_type     | Server_id | End_log_pos | Info                                                               |
+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
| binlog.000001 |    4 | Format_desc    |         3 |         123 | Server ver: 5.7.17-log, Binlog ver: 4                              |
| binlog.000001 |  123 | Previous_gtids |         3 |         150 |                                                                    |
| binlog.000001 |  150 | Gtid           |         1 |         211 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1'  |
| binlog.000001 |  211 | Query          |         1 |         270 | BEGIN                                                              |
| binlog.000001 |  270 | View_change    |         1 |         369 | view_id=14724832985483517:1                                        |
| binlog.000001 |  369 | Query          |         1 |         434 | COMMIT                                                             |
| binlog.000001 |  434 | Gtid           |         1 |         495 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:2'  |
| binlog.000001 |  495 | Query          |         1 |         585 | CREATE DATABASE test                                               |
| binlog.000001 |  585 | Gtid           |         1 |         646 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:3'  |
| binlog.000001 |  646 | Query          |         1 |         770 | use `test`; CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL) |
| binlog.000001 |  770 | Gtid           |         1 |         831 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:4'  |
| binlog.000001 |  831 | Query          |         1 |         890 | BEGIN                                                              |
| binlog.000001 |  890 | Table_map      |         1 |         933 | table_id: 108 (test.t1)                                            |
| binlog.000001 |  933 | Write_rows     |         1 |         975 | table_id: 108 flags: STMT_END_F                                    |
| binlog.000001 |  975 | Xid            |         1 |        1002 | COMMIT /* xid=29 */                                                |
| binlog.000001 | 1002 | Gtid           |         1 |        1063 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:5'  |
| binlog.000001 | 1063 | Query          |         1 |        1122 | BEGIN                                                              |
| binlog.000001 | 1122 | View_change    |         1 |        1261 | view_id=14724832985483517:2                                        |
| binlog.000001 | 1261 | Query          |         1 |        1326 | COMMIT                                                             |
| binlog.000001 | 1326 | Gtid           |         1 |        1387 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:6'  |
| binlog.000001 | 1387 | Query          |         1 |        1446 | BEGIN                                                              |
| binlog.000001 | 1446 | View_change    |         1 |        1585 | view_id=14724832985483517:3                                        |
| binlog.000001 | 1585 | Query          |         1 |        1650 | COMMIT                                                             |
+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
23 rows in set (0,00 sec)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章