독립 실행 형 다중 인스턴스를 다시 시작 MySQL 데이터베이스 서비스

1, # 고양이 db.txt는
백엔드 3310
기본 3320
스토리지 3330
지불 3340
홍보 3350

2, # 고양이 restart_mysql_slave.sh의
#! / 빈 / 쉬
수출 PATH = $ PATH : / usr / 지방 / mysql을 / 빈

에코 -e "\ 033 31m`date +"% Y- % M- % D "다시 시작 '! \ 033 0m"% T

# 데이터베이스 중지
/opt/ops-tool/stop_all.sh을

# 데이터베이스 시작
/opt/ops-tool/start_all.sh을


라이브러리에서 # 시작
/opt/ops-tool/start_slave.sh


마스터에서 # 확인 상태
/opt/ops-tool/mysql_replication_check.sh

에코 -e "\ 033 31m`date +"% Y- % M- % D % T " '재시작 단부! \ n \ 033 0m"

3, # 고양이 stop_all.sh의
#! / 빈 / 쉬
수출 PATH = $ PATH : / usr / 지방 / mysql을 / 빈

# 정지 데이터베이스
고양이 /opt/ops-tool/db.txt | 읽기 라인 동안

PWD = 'XXX'
포트 = $ (에코 $ 선 | AWK '{} $ 2 인쇄')
/ usr / 지방 / MySQL을 / 빈 / mysqladmin 데이터 포트 -uroot - P - P $ -h127.0.0.1 $ PWD 종료 &>을 / dev / null
SLEEP 10
DONE

4, # 고양이 start_all.sh
/ usr / 지방 / MySQL은 / 빈 / mysqld_safe에의 --defaults = 파일 / 데이터 / account_3550 / CONT / my.cnf의 &> / 디바이스 / 널 및
/ usr / 지방 / MySQL은 / 빈 / mysqld_safe에 --defaults = 파일 / 데이터 / backend_3310 / CONT / my.cnf의 &> / 디바이스 / 널 및
/ usr / 지방 / MySQL은 / 빈 / mysqld_safe에의 --defaults = 파일 / 데이터 / base_3320 / CONT / my.cnf의 & > / 디바이스 / 널 및
/ usr / 지방 / MySQL은 / 빈 / mysqld_safe에의 --defaults = 파일 / 데이터 / bbtoms_3520 / CONT / my.cnf의 &> / 디바이스 / 널 및
/ usr / 지방 / MySQL은 / 빈 / mysqld_safe에 - -defaults = 파일 / 데이터 / bcoin_3610 / CONT / my.cnf의 &> / 디바이스 / 널 및

수면 (20)

5, # 고양이 mysql_replication_check.sh의
#! / 빈 / 쉬
수출 PATH = $ PATH : / usr / 지방 / mysql을 / 빈
고양이 /opt/ops-tool/db.txt | 읽기 라인 동안

PWD = 'XXX'
| 서비스 = $은 ( '{$ 1 인쇄}'AWK $ 라인 에코)
= $ 포트를 | ($ 라인 에코 AWK를 '{$ 2 인쇄}')
mysql을 = "/ usr / 지방 / mysql을 / 빈 / mysql을 -h127.0.0.1 -P $ 포트 -uroot -p $ PWD "
$ mysql을 -e"쇼 노예 상태 \ G; " 2>을 / dev / null> tmp.log
IO_env =`고양이 tmp.log | 그렙 -w Slave_IO_Running | AWK ''{$ 2 인쇄} '
SQL_env =`고양이 tmp.log | 그렙 -w Slave_SQL_Running | AWK는 '{$ 2 인쇄}'`
#判断Slave_IO_Running Slave_SQL_Running状态
[ "$ IO_env"= "예"-a "$ SQL_env"= "예"
] 다음
에코 -e "복제 \ 033 [32m $ 서비스 -> $ 포트 \ 033 [0m OK!"
그밖에
에코 -e는 "복제 \ 033 [31m의 $ 서비스 -> $ 포트 \ 033 [0m은 비정상이다!"
Fi를
완료

/ 빈 / RF RM은 tmp.log

6, # crontab을 -l
0 17 * * * / 빈 / 떠들썩한 파티 /opt/ops-tool/restart_mysql_slave.sh> / TMP / restart_mysql $ _ (일자 "+ \ % Y - \ %의 m - \ % D"). 로그

추천

출처www.cnblogs.com/manger/p/12574899.html