1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
include/group_replication.inc [rpl_server_count=3]
Warnings:
Note #### Sending passwords in plain text without SSL/TLS is extremely insecure.
Note #### Storing MySQL user name or password information in the connection metadata repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START REPLICA; see the 'START REPLICA Syntax' in the MySQL Manual for more information.
[connection server1]
############################################################
# 01. Bootstrap group with M1, add M2.
[connection server1]
include/start_and_bootstrap_group_replication.inc
CREATE TABLE t1 (a INT PRIMARY KEY);
INSERT INTO t1 VALUES (1);
[connection server2]
include/start_group_replication.inc
############################################################
# 02. Lock table t1 on server2 to block a future update.
[connection server2]
LOCK TABLE t1 READ;
############################################################
# 03. Execute transaction T1, the transaction will block since
# server2 cannot prepare.
[connection server1]
INSERT INTO t1 VALUES (2);
############################################################
# 04. Execute START GR on M3.
# The member will be in RECOVERING until T1 is complete.
[connection server3]
include/start_group_replication.inc
############################################################
# 05. On M2: Unlock t1.
[connection server2]
UNLOCK TABLES;
############################################################
# 06. server3 will change to ONLINE state.
[connection server3]
include/gr_wait_for_member_state.inc
############################################################
# 07. Validate data.
[connection server1]
include/assert.inc ['There is a 1 value in table t1']
include/assert.inc ['There is a 2 value in table t1']
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
server-binary-log.000001 # Previous_gtids # #
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Query # # COMMIT
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY)
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Table_map # # table_id: # (test.t1)
server-binary-log.000001 # Write_rows # # table_id: # flags: STMT_END_F
server-binary-log.000001 # Xid # # COMMIT /* XID */
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Query # # COMMIT
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Table_map # # table_id: # (test.t1)
server-binary-log.000001 # Write_rows # # table_id: # flags: STMT_END_F
server-binary-log.000001 # Xid # # COMMIT /* XID */
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Query # # COMMIT
[connection server2]
include/assert.inc ['There is a 1 value in table t1']
include/assert.inc ['There is a 2 value in table t1']
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
server-binary-log.000001 # Previous_gtids # #
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Query # # COMMIT
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY)
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Table_map # # table_id: # (test.t1)
server-binary-log.000001 # Write_rows # # table_id: # flags: STMT_END_F
server-binary-log.000001 # Xid # # COMMIT /* XID */
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Query # # COMMIT
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Table_map # # table_id: # (test.t1)
server-binary-log.000001 # Write_rows # # table_id: # flags: STMT_END_F
server-binary-log.000001 # Xid # # COMMIT /* XID */
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Query # # COMMIT
[connection server3]
include/assert.inc ['There is a 1 value in table t1']
include/assert.inc ['There is a 2 value in table t1']
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
server-binary-log.000001 # Previous_gtids # #
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Query # # COMMIT
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY)
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Table_map # # table_id: # (test.t1)
server-binary-log.000001 # Write_rows # # table_id: # flags: STMT_END_F
server-binary-log.000001 # Xid # # COMMIT /* XID */
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Query # # COMMIT
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Table_map # # table_id: # (test.t1)
server-binary-log.000001 # Write_rows # # table_id: # flags: STMT_END_F
server-binary-log.000001 # Xid # # COMMIT /* XID */
server-binary-log.000001 # Gtid # # SET @@SESSION.GTID_NEXT= 'Gtid_set'
server-binary-log.000001 # Query # # BEGIN
server-binary-log.000001 # Query # # COMMIT
include/diff_tables.inc [server1:t1, server2:t1, server3:t1]
############################################################
# 08. Clean up.
[connection server1]
DROP TABLE t1;
include/group_replication_end.inc
|