1################################################################################ 2# Verify performance_schema.replication_group_members for new columns 3# 4# Test: 5# 1. Assert MEMBER_ROLE and MEMBER_VERSION after start of GR 6# 1A. Store server_uuid and member_version for future reference 7# 1B. Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1 8# 2. Assert MEMBER_ROLE and MEMBER_VERSION before start of GR 9# 2A. Assert MEMBER_ROLE and MEMBER_VERSION are not set on server2 10# 2B. Start GR on server2 11# 2C. Store server_uuid and member_version for future reference 12# 3. Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1 and server2 13# 4. Shutdown GR 14################################################################################ 15 16 17--source include/have_group_replication_plugin.inc 18--let $rpl_skip_group_replication_start= 1 19--let $rpl_group_replication_single_primary_mode=1 20--source include/group_replication.inc 21 22--echo 23--echo ##################################################################### 24--echo # 1. Assert MEMBER_ROLE and MEMBER_VERSION after start of GR 25--echo ##################################################################### 26--source include/start_and_bootstrap_group_replication.inc 27 28## Store server_uuid and member_version of server1 for future reference 29# Store server1_uuid 30--let $server1_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1) 31# Store server1_version 32--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1) 33--let $_member_version_2= query_get_value(SELECT @@version as version, version, 1) 34--let $server_version= query_get_value("SELECT LEFT('$_member_version_2',CHAR_LENGTH('$_member_version_')) AS VERSION", VERSION, 1) 35 36## Assert server_version is not empty string 37--let $assert_text= 'MEMBER_VERSION is not empty' 38--let $assert_cond= [SELECT CHAR_LENGTH("$server_version") >= 5 AS VERSION, VERSION, 1] = 1 39--source include/assert.inc 40 41## Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1 42 43# Assert MEMBER_ROLE 44--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_ROLE, 1) 45--let $assert_text= 'Server1 MEMBER_ROLE should be PRIMARY' 46--let $assert_cond= "$_member_role_"= "PRIMARY" 47--source include/assert.inc 48 49# Assert MEMBER_VERSION 50--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1) 51--let $assert_text= 'Server1 MEMBER_VERSION should match with SELECT @@server_version' 52--let $assert_cond= "$_member_version_"= "$server_version" 53--source include/assert.inc 54 55--echo 56--echo ##################################################################### 57--echo # 2. Assert MEMBER_ROLE and MEMBER_VERSION before start of GR 58--echo ##################################################################### 59## Start server2 60--let $rpl_connection_name= server2 61--source include/rpl_connection.inc 62 63## Assert MEMBER_ROLE and MEMBER_VERSION are not set on server2 64 65# Assert MEMBER_ROLE 66--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members, MEMBER_ROLE, 1) 67--let $assert_text= 'Server2 MEMBER_ROLE should not be set when GR is starting' 68--let $assert_cond= "$_member_role_"= "" 69--source include/assert.inc 70 71# Assert MEMBER_VERSION 72--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members, MEMBER_VERSION, 1) 73--let $assert_text= 'Server2 MEMBER_VERSION should not be set when GR is starting' 74--let $assert_cond= "$_member_version_"= "" 75--source include/assert.inc 76 77## Start GR on server2 78--source include/start_group_replication.inc 79 80## Store server_uuid and member_version of server2 for future reference 81# Store server2_uuid 82--let $server2_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1) 83 84--echo 85--echo ############################################################################## 86--echo # 3. Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1 and server2 87--echo ############################################################################## 88 89## Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1 90--let $rpl_connection_name= server1 91--source include/rpl_connection.inc 92 93# Assert MEMBER_ROLE 94--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_ROLE, 1) 95--let $assert_text= 'Server1 MEMBER_ROLE should be PRIMARY' 96--let $assert_cond= "$_member_role_"= "PRIMARY" 97--source include/assert.inc 98 99# Assert MEMBER_ROLE 100--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_ROLE, 1) 101--let $assert_text= 'Server2 MEMBER_ROLE should be SECONDARY' 102--let $assert_cond= "$_member_role_"= "SECONDARY" 103--source include/assert.inc 104 105 106# Assert MEMBER_VERSION 107--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1) 108--let $assert_text= 'Server1 MEMBER_VERSION should match with SELECT @@server_version' 109--let $assert_cond= "$_member_version_"= "$server_version" 110--source include/assert.inc 111 112# Assert MEMBER_VERSION 113--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_VERSION, 1) 114--let $assert_text= 'Server2 MEMBER_VERSION should match with SELECT @@server_version' 115--let $assert_cond= "$_member_version_"= "$server_version" 116--source include/assert.inc 117 118 119## Assert MEMBER_ROLE and MEMBER_VERSION are correct on server2 120--let $rpl_connection_name= server2 121--source include/rpl_connection.inc 122 123# Assert MEMBER_ROLE 124--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_ROLE, 1) 125--let $assert_text= 'Server1 MEMBER_ROLE should be PRIMARY' 126--let $assert_cond= "$_member_role_"= "PRIMARY" 127--source include/assert.inc 128 129# Assert MEMBER_ROLE 130--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_ROLE, 1) 131--let $assert_text= 'Server2 MEMBER_ROLE should be SECONDARY' 132--let $assert_cond= "$_member_role_"= "SECONDARY" 133--source include/assert.inc 134 135# Assert MEMBER_VERSION 136--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1) 137--let $assert_text= 'Server1 MEMBER_VERSION should match with SELECT @@server_version' 138--let $assert_cond= "$_member_version_"= "$server_version" 139--source include/assert.inc 140 141# Assert MEMBER_VERSION 142--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_VERSION, 1) 143--let $assert_text= 'Server2 MEMBER_VERSION should match with SELECT @@server_version' 144--let $assert_cond= "$_member_version_"= "$server_version" 145--source include/assert.inc 146 147--echo 148--echo ########################################################################## 149--echo # 4. Shutdown GR 150--echo ########################################################################## 151--source include/group_replication_end.inc 152 153