기술지식

제품명 Tibero 등록일 2019.01.31
문서형식 TNote 서비스유형 개발 및 운영>샘플코드
제목 Hotbackup 스크립트 공유

  안녕하세요.

 

  기존 Hotbackup 스크립트를 보완하여 업데이트를 하였습니다.

 

  바뀐 부분에 대해서는 아래 내용 참고 바라며

 확인 부탁 드립니다.

 

 감사합니다.

 


 

1. 환경변수 잘못된 적용으로 인한 방안

  => 수정한 스크립트에는 각 환경변수에 잘못된 경로 및 쓰기 권한이 없으면 echo 로 에러 출력하면서 shell 강제 종료 시킴

 => if 문에 -d 는 디렉토리인지 확인, -w 는 쓰기 권한인지 확인, if 문 조건이 FALSE 이면 exit 1 을 수행하여 빠져나옴

 

기존 스크립트 일부

수정한 스크립트 일부

su - $TB_USER -c "mkdir $BACKUP_DIR"

su - $TB_USER -c "mkdir $LIST_DIR"

su - $TB_USER -c "mkdir $TMP_DIR"

su - $TB_USER -c "mkdir $LOG_DIR"

su - $TB_USER -c "touch $LOG"

 

\rm $LIST_DIR/* $TMP_DIR/*

su - $TB_USER -c "mkdir $BACKUP_DIR"

su - $TB_USER -c "mkdir $LIST_DIR"

su - $TB_USER -c "mkdir $TMP_DIR"

su - $TB_USER -c "mkdir $LOG_DIR"

su - $TB_USER -c "touch $LOG"

 

if [[ -d $BACKUP_DIR && (-w $BACKUP_DIR) ]];

then

  echo '$BACKUP_DIR' is $BACKUP_DIR setting.

else

  echo ' ERROR !! ' '$BACKUP_DIR' is $BACKUP_DIR not setting. Check is $BACKUP_DIR

  exit 1

fi

 

if [[ -d $LIST_DIR && (-w $LIST_DIR) ]];

then

  echo '$LIST_DIR' is $LIST_DIR setting.

else

  echo ' ERROR !! ' '$LIST_DIR' is $LIST_DIR not setting. Check is '$LIST_DIR'

  exit 1

fi

 

if [[ -d $TMP_DIR && (-w $TMP_DIR) ]];

then

  echo '$TMP_DIR' is $TMP_DIR setting.

else

  echo ' ERROR !! ' '$TMP_DIR' is $TMP_DIR not setting. Check is '$TMP_DIR'

  exit 1

fi

 

if [[ -d $LOG_DIR && (-w $LOG_DIR) ]];

then

  echo '$LOG_DIR' is $LOG_DIR setting.

else

  echo ' ERROR !! ' '$LOG_DIR' is $LOG_DIR not setting. Check is '$LOG_DIR'

  exit 1

fi

 

if [ -w $LOG ];

then

  echo '$LOG' is $LOG setting.

else

  echo ' ERROR !! ' '$LOG' is $LOG not setting. Check is '$LOG'

  exit 1

fi

\rm $LIST_DIR/* $TMP_DIR/*

 

2. 한글을 영문으로 번역

 

기존 스크립트 일부

수정한 스크립트 일부

# cp로 복사 시

# !! When copying to cp

# 베리타스 넷백업으로 백업 시

# !! When backing up with Veritas NetBackup Solution

#이부분은 넷백업으로  Archive와 Controlfile 백업 시 체크 해야 하는 부분

# !! This part is the part that needs to be checked when backing up Archive and Controlfile with NetBackup Solution

 

3. 필수 파라미터 작성 표시함

기존 스크립트 일부

수정한 스크립트 일부

########################################################

#                     Shell Environment

########################################################

TB_USER=tibero

TB_HOME=/tibero/tibero5

ARCH_DIR=/home/tibero/tbarch

WORK_DIR=/home/tibero/full_backup

 

BACKUP_DIR=$WORK_DIR/`date +%y%m%d_%H%M`

BACKUP_CTL=$BACKUP_DIR/control.ctl.bak

LIST_DIR=$WORK_DIR/list

TMP_DIR=$WORK_DIR/tmp

LOG_DIR=$WORK_DIR/log

LOG=$LOG_DIR/`uname -n`_`date +%m%d`.log

TABLESPACES=$LIST_DIR/TABLESPACES.LIST

FILE_LIST=$LIST_DIR/FILES.LIST

DB_LIST=$LIST_DIR/DB.LIST

TMP_FILE=$TMP_DIR/tmp_file.txt

########################################################

#                     Shell Environment

########################################################

 

########################################################

#                                                                                                 #

# (Mandatory)                                                                                  #

#                                                                                                 #

# TB_USER : Tibero user installed on OS                                                    #

# TB_HOME : TB_HOME of the user with Tibero installed                                  #

# ARCH_DIR : Path to the archive log                                                        #

# WORK_DIR : Fullbackup path                                                               #

#                                                                                                 #

########################################################

 

TB_USER=tibero

TB_HOME=/tibero/tibero5

ARCH_DIR=/home/tibero/tbarch

WORK_DIR=/home/tibero/full_backup

 

# (Optional)

BACKUP_DIR=$WORK_DIR/`date +%y%m%d_%H%M`

BACKUP_CTL=$BACKUP_DIR/control.ctl.bak

LIST_DIR=$WORK_DIR/list

TMP_DIR=$WORK_DIR/tmp

LOG_DIR=$WORK_DIR/log

LOG=$LOG_DIR/`uname -n`_`date +%m%d`.log

TABLESPACES=$LIST_DIR/TABLESPACES.LIST

FILE_LIST=$LIST_DIR/FILES.LIST

DB_LIST=$LIST_DIR/DB.LIST

TMP_FILE=$TMP_DIR/tmp_file.txt

 

4. 백업 케이스 구분 표시함

기존 스크립트 일부

수정한 스크립트 일부

########################################################

#              Backup

########################################################

 

# cp로 복사 시

cat $LIST_DIR/datafile.list |

while read DATAFILE

do

cp $DATAFILE $BACKUP_DIR >>$LOG

done

 

# 베리타스 넷백업으로 백업 시

#/usr/openv/netbackup/bin/bpbackup -p TIBERO_E3500-NEW -s DATAFILE -w -f $LIST_DIR/datafile.list

########################################################

#              Backup

########################################################

 

########################################################

#                                                                                                 #

# CASE 1. CP backup                                                                          #

#                                                                                                 #

# CASE 2. Veritas NetBackup Solution                                                        #

#                                                                                                 #

# Select CASE. But enter # in front of other case command.                              #

#                                                                                                 #

########################################################

 

########################################################

# CASE 1. CP backup                                                                          #

########################################################

 

cat $LIST_DIR/datafile.list | while read DATAFILE

do

  cp $DATAFILE $BACKUP_DIR >> $LOG

done

 

########################################################

 

########################################################

# CASE 2. Veritas NetBackup Solution                                                        #

########################################################

 

#/usr/openv/netbackup/bin/bpbackup -p TIBERO_E3500-NEW -s DATAFILE -w -f $LIST_DIR/datafile.list

 

5. 아카이브 백업 구분 표시함

기존 스크립트 일부

수정한 스크립트 일부

# Archive Backup

cp -R $ARCH_DIR $BACKUP_DIR >>$LOG

 

#이부분은 넷백업으로  Archive와 Controlfile 백업 시 체크 해야 하는 부분

#echo $ARCH_DIR > $LIST_DIR/archive.list

#ls -ld /backup/control | awk '{print $9}' >> $LIST_DIR/archive.list

#/usr/openv/netbackup/bin/bpbackup -p TIBERO_E3500-NEW -s ARCHIVE -w -f $LIST_DIR/archive.list

 

# Return Error Code. Confirm Backup Success.

#

#if [ $? = 0 ]

#then

#  echo "End" >> $LOG

#  echo " Result : Backup Success.  " >> $LOG

#else

#  echo " Error  : Backup Fail. Return Code = $?  " >> $LOG

#  exit 1

#fi

########################################################

#                                                                                                 #

# Archive Backup                                                                               #

#                                                                                                 #

# CASE 1. Archive is CP backup                                                              #

#                                                                                                 #

# CASE 2. Archive is Veritas NetBackup Solution backup                                   #

#                                                                                                 #

# Select CASE. But enter # in front of other case command.                              #

#                                                                                                 #

########################################################

 

#################################################

# CASE 1. Archive is CP backup                                                  #

#################################################

 

cp -R $ARCH_DIR $BACKUP_DIR >>$LOG

 

#################################################

 

#################################################

# CASE 2. Archive is Veritas NetBackup Solution backup                       #

#################################################

 

#echo $ARCH_DIR > $LIST_DIR/archive.list

#ls -ld /backup/control | awk '{print $9}' >> $LIST_DIR/archive.list

#/usr/openv/netbackup/bin/bpbackup -p TIBERO_E3500-NEW -s ARCHIVE -w -f $LIST_DIR/archive.list

 

## Return Error Code. Confirm Backup Success.

#

#if [ $? = 0 ]

#then

#  echo "End" >> $LOG

#  echo " Result : Backup Success.  " >> $LOG

#else

#  echo " Error  : Backup Fail. Return Code = $?  " >> $LOG

#  exit 1

#fi

 

##############################################################

 

6. 중요 파라미터와 데이터파일 Copy, 아카이브 파일 백업 형식 등에 Mandatory 표시함

첨부파일
Plugin HTML5