>  기사  >  데이터 베이스  >  Linux에서 MySQL 마스터-슬레이브 동기화 모니터링 셸 스크립트

Linux에서 MySQL 마스터-슬레이브 동기화 모니터링 셸 스크립트

伊谢尔伦
伊谢尔伦원래의
2016-12-03 10:55:531605검색

설명:

운영체제: CentOS

목적: MySQL 마스터-슬레이브 데이터베이스의 동기화 여부를 정기적으로 모니터링하고, 동기화되지 않은 경우 실패 시간을 기록하고 마스터를 복원하는 명령을 실행합니다. -slave 동기화 상태

1. 스크립트 파일 생성

vi /home/crontab/check_mysql_slave.sh #편집, 다음 코드 추가

#!/bin/sh

# check_mysql_slave 상태

# 작성자 www.osyunwei.com

ip=eth0 #네트워크 카드 이름

mysql_binfile=/usr/local/mysql/ bin/mysql

mysql_user=root #MySQL 데이터베이스 계정

mysql_pass=123456 #Password

mysql_sockfile=/tmp/mysql.sock

datetime=` date +"%Y-%m -%d/%H:%M:%S"` #현재 시간 가져오기

mysql_slave_logfile=/home/logs/check_mysql_slave.log #로그 파일 경로는 다음과 같아야 합니다 미리 생성됨

slave_ip =`ifconfig $ip|grep "inet addr" | awk -F[:" "]+ '{print $4}'`

status=$($mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "슬레이브 상태 표시G" | grep -i "실행 중")

Slave_IO_Running=`echo $status | grep Slave_IO_Running | `

Slave_SQL_Running=` echo $status | grep Slave_SQL_Running | awk '{print $2}'`

if [ "$Slave_IO_Running" = "예" -a "$Slave_SQL_Running" = "예 " ]

then echo "슬레이브가 실행 중입니다!"

else

echo " $datetime $slave_ip 슬레이브가 실행 중이 아닙니다!" >> $mysql_slave_logfile

$mysql_binfile -u$mysql_user - p$mysql_pass -S $mysql_sockfile -e "SLAVE STOP;"

$mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "SET GLOBAL SQL_SLAVE_SKIP_COUNTER =1;"

$mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "SLAVE START;"

$mysql_binfile -u$mysql_user -p$mysql_pass -S $ mysql_sockfile -e "EXIT"

fi

:wq! #저장하고 종료

chmod +x /home/crontab/check_mysql_slave.sh #스크립트 실행 권한 추가

2. 작업 계획 추가, /etc/crontab 수정

vi /etc/crontab #추가

*/10 * * * * root /home/crontab/ check_mysql_slave.sh #마지막 줄에 10분마다 표시 한 번 실행

:wq! #저장하고 종료

3. 설정을 적용하려면 crond를 다시 시작하세요

/ etc/rc.d/init.d/crond restart #yum install -y vixie-cron 설치 예약 작업, 일부 시스템은 사전 설치되지 않을 수 있습니다

chkconfig crond on #부팅 설정

service crond start #Start

로그 파일 /home/logs/check_mysql_slave.log에 따라 MySQL 마스터-슬레이브 동기화 상태 보기

이때 MySQL 마스터-슬레이브 동기화 모니터링 쉘 스크립트는 Linux에서는 완료되었습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.