@ -273,11 +273,19 @@ if [ ${NUMBER_WRITERS_ONLINE} -eq 0 ]; then
do
WSREP_STATUS=$($MYSQL_CMDLINE -h $server -P $port -e "SHOW STATUS LIKE 'wsrep_local_state'" 2>>${ERR_FILE}| tail -1 2>>${ERR_FILE})
echo"`date` Check server $hostgroup:$server:$port for only available node in DONOR state, status $stat , wsrep_local_state $WSREP_STATUS" >> ${ERR_FILE}
if["${WSREP_STATUS}"="2" -a "$stat" !="ONLINE"]
if["${WSREP_STATUS}"="2" -a "$stat" !="ONLINE"]# if we are on Donor/Desync an not online in mysql_servers -> proceed
then
change_server_status $HOSTGROUP_WRITER_ID"$server"$port"ONLINE""WSREP status is DESYNC/DONOR, as this is the only node we will put this one online"
echo"1" > ${RELOAD_CHECK_FILE}
cnt=$(($cnt+1))
PROXY_RUNTIME_STATUS=$($PROXYSQL_CMDLINE"SELECT status FROM runtime_mysql_servers WHERE hostname='${server}' AND port='${port}' AND hostgroup_id='${hostgroup}'")
if["${PROXY_RUNTIME_STATUS}" !="ONLINE"]# if we are not online in runtime_mysql_servers, proceed to change the server status and reload mysql_servers
then
change_server_status $HOSTGROUP_WRITER_ID"$server"$port"ONLINE""WSREP status is DESYNC/DONOR, as this is the only node we will put this one online"
echo"1" > ${RELOAD_CHECK_FILE}
cnt=$(($cnt+1))
else# otherwise (we are already ONLINE in runtime_mysql_servers) no need to reload so let's just remove RELOAD_CHECK_FILE and update it to ONLINE in mysql_servers (in case something would reload it)
rm ${RELOAD_CHECK_FILE}
cnt=$(($cnt+1))
change_server_status $HOSTGROUP_WRITER_ID"$server"$port"ONLINE""WSREP status is DESYNC/DONOR, as this is the only node we will put this one online"
fi
fi
safety_cnt=$(($safety_cnt+1))
done
@ -297,11 +305,19 @@ if [ ${HOSTGROUP_READER_ID} -ne -1 -a ${NUMBER_READERS_ONLINE} -eq 0 ]; then
do
WSREP_STATUS=$($MYSQL_CMDLINE -h $server -P $port -e "SHOW STATUS LIKE 'wsrep_local_state'" 2>>${ERR_FILE}| tail -1 2>>${ERR_FILE})
echo"`date` Check server $hostgroup:$server:$port for only available node in DONOR state, status $stat , wsrep_local_state $WSREP_STATUS" >> ${ERR_FILE}
if["${WSREP_STATUS}"="2" -a "$stat" !="ONLINE"]
if["${WSREP_STATUS}"="2" -a "$stat" !="ONLINE"]# if we are on Donor/Desync an not online in mysql_servers -> proceed
then
change_server_status $HOSTGROUP_READER_ID"$server"$port"ONLINE""WSREP status is DESYNC/DONOR, as this is the only node we will put this one online"
echo"1" > ${RELOAD_CHECK_FILE}
cnt=$(($cnt+1))
PROXY_RUNTIME_STATUS=$($PROXYSQL_CMDLINE"SELECT status FROM runtime_mysql_servers WHERE hostname='${server}' AND port='${port}' AND hostgroup_id='${hostgroup}'")
if["${PROXY_RUNTIME_STATUS}" !="ONLINE"]# if we are not online in runtime_mysql_servers, proceed to change the server status and reload mysql_servers
then
change_server_status $HOSTGROUP_READER_ID"$server"$port"ONLINE""WSREP status is DESYNC/DONOR, as this is the only node we will put this one online"
echo"1" > ${RELOAD_CHECK_FILE}
cnt=$(($cnt+1))
else# otherwise (we are already ONLINE in runtime_mysql_servers) no need to reload so let's just remove RELOAD_CHECK_FILE and update it to ONLINE in mysql_servers (in case something would reload it)
rm ${RELOAD_CHECK_FILE}
cnt=$(($cnt+1))
change_server_status $HOSTGROUP_READER_ID"$server"$port"ONLINE""WSREP status is DESYNC/DONOR, as this is the only node we will put this one online"