Further improvements to reduce config reloading
This commit is contained in:
Родитель
75bb9b77fa
Коммит
31e29ddc90
|
@ -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"
|
||||
fi
|
||||
fi
|
||||
safety_cnt=$(( $safety_cnt + 1 ))
|
||||
done
|
||||
|
|
Загрузка…
Ссылка в новой задаче