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
|
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]
# 1. Start GR on server1 & 2
[connection server1]
include/start_and_bootstrap_group_replication.inc
[connection server2]
include/start_group_replication.inc
# 2. Add some data to server1.
[connection server1]
CREATE TABLE test.t1 (c1 INT NOT NULL PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO test.t1 VALUES (1);
#
# 3. Add asynchronous connection failover server and
# verify that it is inserted successfully in
# performance_schema.replication_asynchronous_connection_failover.
#
[connection server3]
SET SESSION sql_log_bin = 0;
call mtr.add_suppression("The source.*for channel.*has joined the group.*and so added its entry into replication_asynchronous_connection_failover table");
call mtr.add_suppression("The group .* for the channel .* has been removed, and so removed its entry from replication_asynchronous_connection_failover_managed and all the group members from replication_asynchronous_connection_failover table.");
call mtr.add_suppression("The group .* for the channel .* has been added, and so added its entry in replication_asynchronous_connection_failover_managed and source to replication_asynchronous_connection_failover table.");
SET SESSION sql_log_bin = 1;
SELECT asynchronous_connection_failover_add_managed('ch1_3', 'GroupReplication', 'FAILOVER_GROUP_NAME', '127.0.0.1', SERVER_MYPORT_1, '', 80, 60);;
asynchronous_connection_failover_add_managed('ch1_3', 'GroupReplication', 'FAILOVER_GROUP_NAME', '127.0.0.1', SERVER_MYPORT_1, '', 80, 60)
The UDF asynchronous_connection_failover_add_managed() executed successfully.
include/assert.inc ['There is one row in performance_schema.replication_asynchronous_connection_failover']
include/assert.inc ['There is one row in performance_schema.replication_asynchronous_connection_failover']
# 4. Create and start new channel ch1_3: server3(replica), server1(source)
[connection server3]
CHANGE REPLICATION SOURCE TO SOURCE_HOST='127.0.0.1', SOURCE_USER='root', SOURCE_AUTO_POSITION=1, SOURCE_CONNECTION_AUTO_FAILOVER=1, SOURCE_PORT=SERVER_1_PORT, SOURCE_CONNECT_RETRY=1, SOURCE_RETRY_COUNT=2 FOR CHANNEL 'ch1_3';
Warnings:
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure.
Note 1760 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.
include/start_slave_io.inc [FOR CHANNEL 'ch1_3']
# 5. Verify channel ch1_3 IO THREAD is ON
# Start SQL THREAD
include/assert.inc [Verify channel ch1_3 IO_THREAD is ON]
include/start_slave_sql.inc [FOR CHANNEL 'ch1_3']
include/assert.inc [Verify channel ch1_3 SQL_THREAD is ON]
# 6. Verify data is replicated to server1 & 3
[connection server1]
include/sync_slave_sql_with_master.inc [FOR CHANNEL 'ch1_3']
[connection server3]
include/assert.inc [Verify test.t1 is synced]
[connection server1]
include/assert.inc [Verify test.t1 is synced]
# 7. Verify server2 which is member of group is added to
# performance_schema.replication_asynchronous_connection_failover.
[connection server3]
include/assert.inc ['There are 2 rows in performance_schema.replication_asynchronous_connection_failover']
include/assert.inc [Verify server1 which is primary has weight=80]
include/assert.inc [Verify server2 which is secondary has weight=60]
include/assert.inc [Verify Slave_monitor thread is FOREGROUND thread]
# 8. Verify Monitor IO thread would set
# stage_fetching_source_member_details,
# stage_upating_source_member_details and
# stage_wait_before_next_fetch state.
# 9. Clean Up.
[connection server1]
DROP TABLE test.t1;
include/sync_slave_sql_with_master.inc
include/stop_slave.inc [FOR CHANNEL 'ch1_3']
include/rpl_reset_slave.inc
SELECT asynchronous_connection_failover_delete_managed('ch1_3', 'FAILOVER_GROUP_NAME');
asynchronous_connection_failover_delete_managed('ch1_3', 'FAILOVER_GROUP_NAME')
The UDF asynchronous_connection_failover_delete_managed() executed successfully.
[connection server1]
include/group_replication_end.inc
|