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 149 150 151 152
|
################################################################################
# Verify performance_schema.replication_group_members for new columns
#
# Test:
# 1. Assert MEMBER_ROLE and MEMBER_VERSION after start of GR
# 1A. Store server_uuid and member_version for future reference
# 1B. Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1
# 2. Assert MEMBER_ROLE and MEMBER_VERSION before start of GR
# 2A. Assert MEMBER_ROLE and MEMBER_VERSION are not set on server2
# 2B. Start GR on server2
# 2C. Store server_uuid and member_version for future reference
# 3. Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1 and server2
# 4. Shutdown GR
################################################################################
--source include/have_group_replication_plugin.inc
--let $rpl_skip_group_replication_start= 1
--let $rpl_group_replication_single_primary_mode=1
--source include/group_replication.inc
--echo
--echo #####################################################################
--echo # 1. Assert MEMBER_ROLE and MEMBER_VERSION after start of GR
--echo #####################################################################
--source include/start_and_bootstrap_group_replication.inc
## Store server_uuid and member_version of server1 for future reference
# Store server1_uuid
--let $server1_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1)
# Store server1_version
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1)
--let $_member_version_2= query_get_value(SELECT @@version as version, version, 1)
--let $server_version= query_get_value("SELECT LEFT('$_member_version_2',CHAR_LENGTH('$_member_version_')) AS VERSION", VERSION, 1)
## Assert server_version is not empty string
--let $assert_text= 'MEMBER_VERSION is not empty'
--let $assert_cond= [SELECT CHAR_LENGTH("$server_version") >= 5 AS VERSION, VERSION, 1] = 1
--source include/assert.inc
## Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1
# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server1 MEMBER_ROLE should be PRIMARY'
--let $assert_cond= "$_member_role_"= "PRIMARY"
--source include/assert.inc
# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server1 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc
--echo
--echo #####################################################################
--echo # 2. Assert MEMBER_ROLE and MEMBER_VERSION before start of GR
--echo #####################################################################
## Start server2
--let $rpl_connection_name= server2
--source include/rpl_connection.inc
## Assert MEMBER_ROLE and MEMBER_VERSION are not set on server2
# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members, MEMBER_ROLE, 1)
--let $assert_text= 'Server2 MEMBER_ROLE should not be set when GR is starting'
--let $assert_cond= "$_member_role_"= ""
--source include/assert.inc
# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members, MEMBER_VERSION, 1)
--let $assert_text= 'Server2 MEMBER_VERSION should not be set when GR is starting'
--let $assert_cond= "$_member_version_"= ""
--source include/assert.inc
## Start GR on server2
--source include/start_group_replication.inc
## Store server_uuid and member_version of server2 for future reference
# Store server2_uuid
--let $server2_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1)
--echo
--echo ##############################################################################
--echo # 3. Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1 and server2
--echo ##############################################################################
## Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1
--let $rpl_connection_name= server1
--source include/rpl_connection.inc
# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server1 MEMBER_ROLE should be PRIMARY'
--let $assert_cond= "$_member_role_"= "PRIMARY"
--source include/assert.inc
# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server2 MEMBER_ROLE should be SECONDARY'
--let $assert_cond= "$_member_role_"= "SECONDARY"
--source include/assert.inc
# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server1 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc
# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server2 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc
## Assert MEMBER_ROLE and MEMBER_VERSION are correct on server2
--let $rpl_connection_name= server2
--source include/rpl_connection.inc
# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server1 MEMBER_ROLE should be PRIMARY'
--let $assert_cond= "$_member_role_"= "PRIMARY"
--source include/assert.inc
# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server2 MEMBER_ROLE should be SECONDARY'
--let $assert_cond= "$_member_role_"= "SECONDARY"
--source include/assert.inc
# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server1 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc
# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server2 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc
--echo
--echo ##########################################################################
--echo # 4. Shutdown GR
--echo ##########################################################################
--source include/group_replication_end.inc
|