마리아(mariadb),mysql 서버 slave status 체크후 start
php로 만들어진 mysql 서버의 slave 상태를 확인 후 다시 시작해주는 간단한 프로그램 입니다. 이런 상황을 만나는 일이 거의 없기는 한데 버전 문제거나 여러가지 이유로 확인해야 되는 경우 스케줄에 넣고. 로그 확인해 보면 좋습니다.
$chkNum = 0;
$sqlQuery = "SHOW SLAVE STATUS";
$oResult = mysqli_query($mysqlCon, $sqlQuery);
foreach ( $aRs = mysqli_fetch_assoc($oResult) as $aryIdx => $value )
{
// print_r($aRs);
// exit;
extract($aRs);
// echo "$aryIdx => $value \n";
if ( $Slave_IO_Running == 'Yes' && $Slave_SQL_Running == 'Yes' )
{
echo "$Slave_IO_Running == 'Yes' && $Slave_SQL_Running == 'Yes' \n";
echo "정상인 상태로 프로그램 종료 합니다. \n";
exit;
// continue;
}
else
{
echo "현재상태 > Slave_IO_Running:$Slave_IO_Running / Slave_SQL_Running:$Slave_SQL_Running \n";
# 1) stop
$sqlQuery = "STOP SLAVE";
$oResult = mysqli_query($mysqlCon, $sqlQuery);
echo "$oResult: stop slave" . "\n";
#
echo "2 sec sleep" . "\n";
sleep(2);
# 2) start
$sqlQuery = "START SLAVE";
$oResult = mysqli_query($mysqlCon, $sqlQuery);
echo "$oResult: start slave" . "\n";
#
echo "2 sec sleep" . "\n";
sleep(2);
$chkNum++;
echo "횟수: " . $chkNum . "\n";
}
#
if ( $chkNum > 7 ) {
echo $chkNum . "회 실행하였습니다. / $Slave_IO_Running:$Slave_SQL_Running" . "\n";
exit;
}
}
마리아(mariadb),mysql 서버 slave status 체크후 start 시켜주는 프로그램 입니다.
필요에 따라 약간 수정해서 사용하시면 되며 소스는 올려 드립니다.
별도 사용자함수 없는 형태로 바로 사용 가능 합니다.
리눅스에서 실행할때는 아래처럼 하면 됩니다.
# chmod 0755 mysql_slave_status_check_start.php
# ./mysql_slave_status_check_start.php slave_status_check_start
첨부파일
- mysql_slave_status_check_start.php (2.1K) 12회 다운로드 | DATE : 2021-09-21 16:30:53