1# ==== Purpose ==== 2# 3# Configure N servers to be in single primary mode. 4# 5# It does not change the current connection. 6# 7# ==== Usage ==== 8# 9# --let $rpl_server_count= N 10# [--let $reset_single_primary_mode=1|0] 11# --source ../inc/single_primary_mode.inc 12# 13# Parameters: 14# $rpl_server_count 15# See include/master-slave.inc 16# 17# $reset_single_primary_mode 18# To check whether we are going to set or 19# reset the single primary mode configuration 20# 21 22--let $include_filename= single_primary_mode.inc 23--source include/begin_include_file.inc 24 25if (!$reset_single_primary_mode) 26{ 27 --let $reset_single_primary_mode= 0 28} 29 30--let $_i_set_single_primary_mode= 1 31--let $_saved_connection= $CURRENT_CONNECTION 32 33--disable_query_log 34 35while ($_i_set_single_primary_mode <= $rpl_server_count) 36{ 37 --let $rpl_connection_name= server_aux_$_i_set_single_primary_mode 38 --let $rpl_server_number= $_i_set_single_primary_mode 39 --source include/rpl_connect.inc 40 --let $rpl_connection_name= server_aux_$_i_set_single_primary_mode 41 --source include/rpl_connection.inc 42 43 # plugin cannot be running for us to setup these configs 44 let $_this_member_id= 45 query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1); 46 let $_is_plugin_running= 47 `SELECT member_state IN ("ONLINE", "UNREACHABLE", "RECOVERY", "ERROR") 48 FROM performance_schema.replication_group_members 49 WHERE member_id="$_this_member_id"`; 50 51 if ($_is_plugin_running) 52 { 53 --die "Cannot set/reset single primary mode while the plugin is running!" 54 } 55 56 if (!$reset_single_primary_mode) 57 { 58 SET GLOBAL group_replication_enforce_update_everywhere_checks= FALSE; 59 SET GLOBAL group_replication_single_primary_mode= TRUE; 60 } 61 62 if ($reset_single_primary_mode) 63 { 64 SET GLOBAL group_replication_single_primary_mode= FALSE; 65 SET GLOBAL group_replication_enforce_update_everywhere_checks= TRUE; 66 } 67 68 --connection default 69 --disconnect server_aux_$_i_set_single_primary_mode 70 71 --inc $_i_set_single_primary_mode 72} 73 74--enable_query_log 75 76--let $reset_single_primary_mode= 77 78--connection $_saved_connection 79 80--let $include_filename= single_primary_mode.inc 81--source include/end_include_file.inc 82