문서번호 : 11-265019
1. memsql.cnf 백업
•
각 node 의 memsql.cnf 파일 백업
◦
memsql.cnf : node가 시작 될 때 로드되는 엔진 변수들을 갖고 있는 파일
◦
scirpt 예시
※ (제품 기능이 아닌 단순 샘플 용 예시입니다.
개별 환경에 맞춰 변경해서 사용하는 것을 권장합니다.)
#!/usr/bin/bash
revc=`tput smso`
norc=`tput rmso`
if [[ ! "$@" =~ bk=.* ]]; then
printf "${revc}Usage : $0 bk=BACKUP_DIR_PATH(.)${norc}\n"
fi
BACKUP_DIR_PATH="."
for v in $@
do
case "$v" in
bk=*) BACKUP_DIR_PATH=${v/*=/} ;;
*) echo "unexpected $v, please bk"; exit ;;
esac
done
printf "\n========== Copy memsql.cnf ==========\n"
for MEMSQL_CNF_PATH in `pgrep -a memsqld_safe | awk '{print $4}'`
do
_PORT="`grep port $MEMSQL_CNF_PATH | cut -d'=' -f2 | tr -d ' '`"
CP_COMMAND="/usr/bin/cp -f $MEMSQL_CNF_PATH ${BACKUP_DIR_PATH}/memsql.cnf.`hostname -f`:${_PORT}.`date +%Y%m%d%H%M%S`"
$CP_COMMAND
echo $CP_COMMAND
done
printf "\n========== Check Files ==========\n"
LL_COMMAND="/usr/bin/ls -l $BACKUP_DIR_PATH"
echo $LL_COMMAND
$LL_COMMAND
Bash
복사
•
예시 script 실행 결과
sh backup_s2.cnf.sh
========== memsql.cnf ==========
/usr/bin/cp -f /home/<user>/singlestore/nodes/lf3/memsql.cnf ./memsql.cnf.ma:3310.20220602164444
/usr/bin/cp -f /home/<user>/singlestore/nodes/lf4/memsql.cnf ./memsql.cnf.ma:3311.20220602164444
/usr/bin/cp -f /home/<user>/singlestore/nodes/lf2/memsql.cnf ./memsql.cnf.ma:3309.20220602164444
/usr/bin/cp -f /home/<user>/singlestore/nodes/lf1/memsql.cnf ./memsql.cnf.ma:3328.20220602164445
/usr/bin/cp -f /home/<user>/singlestore/nodes/ca/memsql.cnf ./memsql.cnf.ma:3327.20220602164445
/usr/bin/cp -f /home/<user>/singlestore/nodes/ma/memsql.cnf ./memsql.cnf.ma:3306.20220602164445
# 생성된 backup 파일
memsql.cnf.ma:3306.20220602164445
memsql.cnf.ma:3309.20220602164444
memsql.cnf.ma:3310.20220602164444
memsql.cnf.ma:3311.20220602164444
memsql.cnf.ma:3327.20220602164445
memsql.cnf.ma:3328.20220602164445
Bash
복사
2. Users, Resource pools, Grant, Variables 백업
•
sdb-admin dump 명령어를 사용하여 User, Resource pools, Grant 구문 백업
◦
variables는 sdb-report명령어를 사용
◦
scirpt 예시
※ (제품 기능이 아닌 단순 샘플 용 예시입니다.
개별 환경에 맞춰 변경해서 사용하는 것을 권장합니다.)
#!/usr/bin/bash
revc=`tput smso`
norc=`tput rmso`
if [[ ! "$@" =~ bk=.* ]]; then
printf "${revc}Usage : $0 bk=BACKUP_DIR_PATH(.)${norc}\n"
fi
BACKUP_DIR_PATH="."
for v in $@
do
case "$v" in
bk=*) BACKUP_DIR_PATH=${v/*=/} ;;
*) echo "unexpected $v, please bk"; exit ;;
esac
done
printf "\n========== sdb-admin dump ==========\n"
sdb-admin dump --output-path $BACKUP_DIR_PATH/dump_file.`date +%Y%m%d%H%M%S`
printf "\n========== sdb-report showVariables ==========\n"
cd $BACKUP_DIR_PATH
memsql-report collect --only showVariables
printf "FINISH\n"
LL_COMMAND="/usr/bin/ls -l $BACKUP_DIR_PATH"
echo $LL_COMMAND
$LL_COMMAND
Bash
복사
•
예시 script 실행 결과
sh dpvrb_bk.sh bk=<path>
# dump 파일 생성
========== sdb-admin dump ==========
Dump written to <path>/dump_file.20240508134254
# report 생성
========== sdb-report showVariables ==========
Toolbox will perform the following actions:
· Execute following collectors
- showVariables
✓ Collected report for host <IP>
Report written to report-2024-05-08T134254.tar.gz
FINISH
/usr/bin/ls -l <path>
# dump, report 파일 생성 확인
dump_file.20240508134254
report-2024-05-08T134254.tar.gz
Bash
복사
일자 | 작성자 | 비고 |
2022.06.02. | min | |
2024.05.08 | min | 스크립트 수정 |