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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
include/group_replication.inc
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]
#################################################################
# 1. Add debug point to reduce certifier broadcast time to 1 second.
# Bootstrap M1 and join M2.
[connection server1]
SET @@GLOBAL.DEBUG= '+d,group_replication_certifier_broadcast_thread_short_period';
include/start_and_bootstrap_group_replication.inc
[connection server2]
SET @@GLOBAL.DEBUG= '+d,group_replication_certifier_broadcast_thread_short_period';
SET @@GLOBAL.DEBUG= '+d,group_replication_certifier_garbage_collection_ran';
include/start_group_replication.inc
#################################################################
# 2. Insert 5 rows.
# Wait for garbage collector to run for every insert.
[connection server1]
CREATE TABLE t1(c1 INT PRIMARY KEY);
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
INSERT INTO t1 VALUES (1);
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
INSERT INTO t1 VALUES (2);
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
INSERT INTO t1 VALUES (3);
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
INSERT INTO t1 VALUES (4);
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
INSERT INTO t1 VALUES (5);
include/rpl_sync.inc
#################################################################
# 3. Assert sequence numbers and last_committed are correct.
# Verify no gaps in sequence number.
[connection server2]
include/include/assert_logical_timestamps.inc [0 0;1 2;2 3;3 4;4 5;5 6;6 7]
#################################################################
# 4. Run 5 DDLs.
# Wait for garbage collector to run for every statement.
[connection server1]
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
CREATE TABLE tt1(c1 INT PRIMARY KEY);
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
CREATE TABLE tt2(c1 INT PRIMARY KEY);
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
CREATE TABLE tt3(c1 INT PRIMARY KEY);
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
CREATE TABLE tt4(c1 INT PRIMARY KEY);
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_certifier_garbage_collection_finished";
[connection server1]
CREATE TABLE tt5(c1 INT PRIMARY KEY);
include/rpl_sync.inc
#################################################################
# 5. Assert sequence numbers and last_committed are correct.
# Verify no gaps in sequence number.
[connection server2]
include/include/assert_logical_timestamps.inc [0 0;1 2;2 3;3 4;4 5;5 6;6 7;7 8;8 9;9 10;10 11;11 12]
#################################################################
# 6. Stop the group.
[connection server2]
include/stop_group_replication.inc
SET @@GLOBAL.DEBUG= '-d,group_replication_certifier_garbage_collection_ran';
SET @@GLOBAL.DEBUG= '-d,group_replication_certifier_broadcast_thread_short_period';
SET DEBUG_SYNC= 'RESET';
[connection server1]
include/stop_group_replication.inc
SET @@GLOBAL.DEBUG= '-d,group_replication_certifier_broadcast_thread_short_period';
#################################################################
# 7. Add debug point to disable certification info garbage collection.
# Bootstrap M1 and join M2.
[connection server1]
SET @@GLOBAL.DEBUG= '+d,group_replication_do_not_clear_certification_database';
SET @@GLOBAL.DEBUG= '+d,group_replication_certifier_broadcast_thread_big_period';
include/start_and_bootstrap_group_replication.inc
[connection server2]
SET @@GLOBAL.DEBUG= '+d,group_replication_do_not_clear_certification_database';
SET @@GLOBAL.DEBUG= '+d,group_replication_certifier_broadcast_thread_big_period';
include/start_group_replication.inc
#################################################################
# 8. Insert 10 rows.
[connection server1]
[connection server1]
INSERT INTO test.t1 VALUES (6);
[connection server1]
INSERT INTO test.t1 VALUES (7);
[connection server1]
INSERT INTO test.t1 VALUES (8);
[connection server1]
INSERT INTO test.t1 VALUES (9);
[connection server1]
INSERT INTO test.t1 VALUES (10);
[connection server1]
INSERT INTO test.t1 VALUES (11);
[connection server1]
INSERT INTO test.t1 VALUES (12);
[connection server1]
INSERT INTO test.t1 VALUES (13);
[connection server1]
INSERT INTO test.t1 VALUES (14);
[connection server1]
INSERT INTO test.t1 VALUES (15);
include/rpl_sync.inc
[connection server2]
include/include/assert_logical_timestamps.inc [0 0;1 2;1 3;1 4;1 5;1 6;1 7;1 8;1 9;1 10;1 11]
#################################################################
# 9. Run 5 DDLs.
[connection server1]
DROP TABLE tt1;
DROP TABLE tt2;
DROP TABLE tt3;
DROP TABLE tt4;
DROP TABLE tt5;
include/rpl_sync.inc
[connection server2]
include/include/assert_logical_timestamps.inc [0 0;1 2;1 3;1 4;1 5;1 6;1 7;1 8;1 9;1 10;1 11;11 12;12 13;13 14;14 15;15 16]
#################################################################
# 10. Cleanup.
[connection server1]
DROP TABLE t1;
include/rpl_sync.inc
[connection server2]
include/stop_group_replication.inc
SET @@GLOBAL.DEBUG= '-d,group_replication_do_not_clear_certification_database';
SET @@GLOBAL.DEBUG= '-d,group_replication_certifier_broadcast_thread_big_period';
[connection server1]
include/stop_group_replication.inc
SET @@GLOBAL.DEBUG= '-d,group_replication_do_not_clear_certification_database';
SET @@GLOBAL.DEBUG= '-d,group_replication_certifier_broadcast_thread_big_period';
include/group_replication_end.inc
|