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
|
###############################################################################
# Validate several scenarios on the UDF:
# asynchronous_connection_failover_reset
#
# Test:
# 0. This test requires two servers
# 1. Create a replication channel ch1 to replicate from
# server2 to server1.
# 2. Try to reset asynchronous reconnection configuration with
# invalid parameters.
# It will not be allowed.
# 3. Try to reset asynchronous reconnection configuration while
# channels are running.
# It will not be allowed.
# 4. Reset asynchronous reconnection configuration while
# channels are stopped.
# It will be allowed.
# 5. Reset asynchronous reconnection configuration while
# channels are stopped for managed source.
# It will be allowed.
# 6. Clean up.
###############################################################################
--source include/have_slave_repository_type_table.inc
--let $rpl_skip_start_slave= 1
--source include/master-slave.inc
--echo
--echo ############################################################
--echo # 1. Create a replication channel ch1 to replicate from
--echo # server2 to server1.
--let $rpl_connection_name= slave
--source include/rpl_connection.inc
--replace_result $SERVER_MYPORT_1 SERVER_1_PORT
--eval CHANGE REPLICATION SOURCE TO SOURCE_HOST='127.0.0.1', SOURCE_USER='root', SOURCE_AUTO_POSITION=1, SOURCE_PORT=$SERVER_MYPORT_1, SOURCE_CONNECT_RETRY=1, SOURCE_RETRY_COUNT=1, SOURCE_CONNECTION_AUTO_FAILOVER=1 FOR CHANNEL 'ch1'
--let $rpl_channel_name='ch1'
--source include/start_slave.inc
--echo
--echo ############################################################
--echo # 2. Try to reset asynchronous reconnection configuration with
--echo # invalid parameters.
--echo # It will not be allowed.
--error ER_CANT_INITIALIZE_UDF
SELECT asynchronous_connection_failover_reset(1);
--error ER_CANT_INITIALIZE_UDF
SELECT asynchronous_connection_failover_reset("");
--echo
--echo ############################################################
--echo # 3. Try to reset asynchronous reconnection configuration while
--echo # channels are running.
--echo # It will not be allowed.
--error ER_CANT_INITIALIZE_UDF
SELECT asynchronous_connection_failover_reset();
--let $rpl_channel_name='ch1'
--source include/stop_slave_sql.inc
--let $assert_text= Verify replica_monitor thread is running
--let $assert_cond= "[select count(*) FROM performance_schema.threads where NAME=\"thread/sql/replica_monitor\"]" = 1;
--source include/assert.inc
--error ER_CANT_INITIALIZE_UDF
SELECT asynchronous_connection_failover_reset();
--echo
--echo ############################################################
--echo # 4. Reset asynchronous reconnection configuration while
--echo # channels are stopped.
--echo # It will be allowed.
--let $rpl_channel_name='ch1'
--source include/stop_slave_io.inc
--let $assert_text= Verify replica_monitor thread is not running
--let $assert_cond= "[select count(*) FROM performance_schema.threads where NAME=\"thread/sql/replica_monitor\"]" = 0;
--source include/assert.inc
SELECT asynchronous_connection_failover_reset();
# Add a source.
SELECT asynchronous_connection_failover_add_source('ch1', '127.0.0.1', 3100);
--let $assert_text= 'There is one row in performance_schema.replication_asynchronous_connection_failover'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover, count, 1] = 1
--source include/assert.inc
SELECT asynchronous_connection_failover_reset();
--let $assert_text= 'There are 0 rows in performance_schema.replication_asynchronous_connection_failover'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover, count, 1] = 0
--source include/assert.inc
--echo
--echo ############################################################
--echo # 5. Reset asynchronous reconnection configuration while
--echo # channels are stopped for managed source.
--echo # It will be allowed.
# Add a managed source.
--let $uuid_val= `SELECT UUID()`
--replace_result $uuid_val UUID_VAL
--eval SELECT asynchronous_connection_failover_add_managed('ch1', 'GroupReplication', "$uuid_val", '127.0.0.1', 3100, '', 80, 60)
--let $assert_text= 'There is one row in performance_schema.replication_asynchronous_connection_failover_managed'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover_managed, count, 1] = 1
--source include/assert.inc
--let $assert_text= 'There is one row in performance_schema.replication_asynchronous_connection_failover'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover, count, 1] = 1
--source include/assert.inc
SELECT asynchronous_connection_failover_reset();
--let $assert_text= 'There are 0 rows in performance_schema.replication_asynchronous_connection_failover_managed'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover_managed, count, 1] = 0
--source include/assert.inc
--let $assert_text= 'There are 0 rows in performance_schema.replication_asynchronous_connection_failover'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover, count, 1] = 0
--source include/assert.inc
--echo
--echo ############################################################
--echo # 6. Clean up.
--let $rpl_channel_name='ch1'
--let $rpl_reset_slave_all= 1
--let $rpl_multi_source= 1
--source include/rpl_reset_slave.inc
--let $rpl_channel_name=
--let $rpl_reset_slave_all=
--let $rpl_multi_source=
--let $rpl_skip_sync = 1
--source include/rpl_end.inc
|