*참고사항*

o  M-S 각각 1 노드일 때의 스크립트

o  MASTER-SLAVE용 DB를 설치한 직후 혹은 MASTER-SLAVE 데이터가 동일하고 MASTER에 데이터 변경이 없을 때 REPLICATION 적용하는 스크립트입니다 

o  MASTER 의 데이터를 SLAVE 에 씌우는 부분은 조만간 추가하겠습니다

o 아래 ### 서버 정보 입력 ### 부분을 수정하고 사용하시면 됩니다.

o 스크립트 수행 전 replication 적용을 위한 계정, 권한 및 host 준비 필요

 

 

#!/bin/bash
 
### 서버 정보 입력 ###
 
USER=replication 계정
PASS=패스워드
ROOT_USER=root    ##replication은 root 로 적용해야함 (super 권한 필요)
ROOT_PASS=패스워드
 
MASTER_HOST=MASTER SERVER IP
SLAVE_HOST=SLAVE SERVER IP
MASTER_PORT=MASTER PORT
SLAVE_PORT=SLAVE PORT
MASTER_SOCKET=MASTER DB SOCKET
SLAVE_SOCKET=SLAVE DB SOCKET
 
 
### MASTER 접속 확인 ###
 
echo "MASTER: $MASTER_HOST"
mysql "-h$MASTER_HOST" "-u$USER" "-p$PASS" "-S$MASTER_SOCKET" "-P$MASTER_PORT"  &
echo "MASTER 접속 성공"
 
 
### MASTER LOG 정보 ###
 
MASTER_STATUS=$(mysql "-h$MASTER_HOST" "-u$USER" "-p$PASS" "-S$MASTER_SOCKET" "-P$MASTER_PORT" -Ne "SHOW MASTER STATUS;" | awk '{print $1 " " $2}')
echo "$MASTER_STATUS"
LOG_FILE=$(echo $MASTER_STATUS | cut -f1 -d ' ')
LOG_POS=$(echo $MASTER_STATUS | cut -f2 -d ' ')
echo "   *MASTER_LOG_FILE is $LOG_FILE   *MASTER_LOG_POS is $LOG_POS"
 
 
### SLAVE 접속 후 REPLICATION 적용 ###
 
echo "SLAVE 접속 및 REPLICATION 적용"
echo "SLAVE: $SLAVE_HOST"
mysql "-h$SLAVE_HOST" "-u$ROOT_USER" "-p$ROOT_PASS" "-S$SLAVE_SOCKET" "-P$SLAVE_PORT" -e "CHANGE MASTER TO MASTER_HOST='$MASTER_HOST', MASTER_PORT=$MASTER_PORT, MASTER_USER='$USER', MASTER_PASSWORD='$PASS', MASTER_LOG_FILE='$LOG_FILE', MASTER_LOG_POS=$LOG_POS; start slave;"
 
 
### REPLICATION 적용 확인 ###
 
sleep 2
echo "REPLICATION 적용 확인"
IO_THREAD=$(mysql "-h$SLAVE_HOST" "-u$USER" "-p$PASS" "-S$SLAVE_SOCKET" "-P$SLAVE_PORT" -Ne "SHOW SLAVE STATUS;" | awk -F'[\t]' '{print $11}')
SQL_THREAD=$(mysql "-h$SLAVE_HOST" "-u$USER" "-p$PASS" "-S$SLAVE_SOCKET" "-P$SLAVE_PORT" -Ne "SHOW SLAVE STATUS;" | awk -F'[\t]' '{print $12}')
 
echo "IO_THREAD : $IO_THREAD  SQL_THREAD : $SQL_THREAD"
 
if [ $IO_THREAD=="Yes" -a  $SQL_THREAD=="Yes" ];then
        echo "REPLICATION 성공"
else
        echo "REPLICATION 실패"
fi