CUBRID2008 LINUX CRON BACKUP 자동화 설정하기
소개: CUBRID2008 LINUX cron backup script를 설정하는 방법을 소개하는 문서로 Unix 계열 모두 사용할 수 있다. 또한 이 문서는 cron 등록방법과 실행 방법을 다루고 있으며, BACKUP 형태를 3단계로 나누어 관리와 편의성을 제공하고자 작성 하였다
2009-03-30 기술컨설팅팀, 정만영, CUBRID2008
적용 대상: CUBRID2008 Linux version.
Backup Utility를 이용한 백업은 backupdb command를 이용한 백업이며, 이에 대한 방법은 다음과 같음
cubrid backupdb [options] source_database
option |
인 자 |
설 명 |
default |
-S/-C |
stand-alone,clinet-server mode 지정 |
$CUBRID_MODE | |
-D |
filepath/device |
백업 볼륨이 저장될 경로 지정 |
log file 경로와 동일 |
-l |
0,1,2 |
백업 레벨 |
0 레벨 |
-r |
백업후 불필요한 archive log 삭제 |
수행 않음 |
Level |
설 명 |
level 0 |
Full Backup |
level 1 |
Level 0 이후에 변경된 것에 대한 backup |
level 2 |
Level 1 이후에 변경된 것에 대한 backup |
참조: 하위 레벨의 backup 이 존재하지 않는 경우, 상위 backup level을 사용할 수 없습니다. 즉, Level 0의 backup를 수행하지 않고는 Level 1의 backup을 수행할 수 없고, Level 1의 backup을 수행하지 않고는 Level 2의 백업을 수행할 수 없다.
백업을 수행한 후 생성되는 파일은 다음과 같은 형태로 생성됨
[DB_NAME]_bk[Backup Level]v[Serial No.]
예) testdb_bk0v000 à full backup(level 0), testdb_bk1v000 à incremental backup(level 1)
백업은 Level을 적용하여 월간, 주간, 일일 백업을 수행하는 것을 권장함
백업주기 |
Backup Level |
비 고 |
백업매체 |
일요일 백업 |
backupdb를 이용한 level 0 backup |
full Backup / online |
디스크 |
월,화,수백업 |
backupdb를 이용한 level 1 backup |
incremental / online |
디스크 |
목,금,토백업 |
backupdb를 이용한 level 2 backup |
incremental / online |
디스크 |
백업매체(disk)의 여유 용량을 수시로 확인이 필요하며, full백업을 성공적으로 수행한 경우 백업로그와 백업파일을 반드시 확인한다. 이전 백업 파일을 삭제해도 관계 없으나, 백업 받은 파일을 2차 백업하지 않을 경우1개월 이상 보관하는 것을 권장 한다.
일요일백업0 (FULL BACKUP)이 없으면 월,화,수/목,금,토(Incremental)로 복구가 안 되는 것을 참조하여 과거 백업파일을 정리 한다.
/home/cubrid 경로에 cubrid user, bash shell로 cub_db 데이터베이스 생성 후 백업 환경을 구현한다.
#! /bin/bash # file name : /home/cubrid2008/backup_cub_db.sh ########################## CUBRID PATH ############################ CUBRID=/home/cubrid2008/CUBRID CUBRID_DATABASES=/home/cubrid2008/CUBRID/databases CUBRID_LANG=en_US ld_lib_path=`printenv LD_LIBRARY_PATH` if [ "$ld_lib_path" = "" ] then LD_LIBRARY_PATH=$CUBRID/lib else LD_LIBRARY_PATH=$CUBRID/lib:$LD_LIBRARY_PATH fi SHLIB_PATH=$LD_LIBRARY_PATH LIBPATH=$LD_LIBRARY_PATH PATH=$CUBRID/bin:$CUBRID/cubridmanager/cmclient:$PATH export CUBRID export CUBRID_DATABASES export CUBRID_LANG export LD_LIBRARY_PATH export SHLIB_PATH export LIBPATH export PATH ############################# BACKUP PATH ########################## BACKUP_DATE=`date +%m%d` BACKUP_DIR=/BACKUP/CUB_DB /${BACKUP_DATE} BACKUP_LOG=${BACKUP_DIR}/backup_cub_db${BACKUP_DATE}.log mkdir ${BACKUP_DIR} if [ $# != 1 ] then echo "##############################################" echo "#### cubrid_backup.sh command(level 0,1,2) ####" echo "##############################################" exit 1 fi level=$1 if [ $level = “0” ] then cubrid backupdb -C -D ${BACKUP_DIR} -l 0 -z -r cub_db >> ${BACKUP_LOG} elif [ $level = “1” ] then cubrid backupdb -C -D ${BACKUP_DIR} -l 1 –z -r cub_db >> ${BACKUP_LOG} elif [ $level = “2” ] then cubrid backupdb -C -D ${BACKUP_DIR} -l 2 –z -r cub_db >> ${BACKUP_LOG} else echo "#############################################################" echo "#### command는 level 0,1,2 입력 바랍니다. #####" echo "#############################################################" exit 1 fi exit; |
cron 등록
cron 등록방법은 아래를 참조하여 등록한다.
예제)
$>cd /var/spool/cron/
--à cron 등록할 위치 이동
$>vi root (또는 crontab –e 사용할 수 있으며 crontab으로 등록하면 cron process restart 필요 없다)
--à 등록할 root cron 열어 아래 사항을 등록
0 1 * * 7 su - cubrid2008 -c "/home/cubrid2008/backup_cub_db.sh 0"
0 05 * * 123 su - cubrid2008 -c "/home/cubrid2008/backup_cub_db.sh 1"
0 06 * * 456 su - cubrid2008 -c "/home/cubrid2008/backup_cub_db.sh 2"
$>ps –ef | grep cron
--à cron process를 찾아 kill
$>kill -9 4763
$>/sbin/cron
--à cron restart
참조: 위 사항은 /home/cubrid2008/ 위치에 백업 스크립트를 만들어 등록한 예제이다.