실제 고객사에서 사용하는 스크립트이다.
incre는 받지않고 full 만 받는다.
(full backup과 log file(오라클의 archive?)로 최종 log file 시점까지 복구가 가능하다고 들었다 - 실제로 해본적은 없다.)
###########################################################################
full
###########################################################################
#! /bin/bash
#-------------------------------------------------------------------------------
# set CUBRID environment variables
#-------------------------------------------------------------------------------
. /home/cubrid/.cubrid.sh
#-------------------------------------------------------------------------------
DB_NAME=`ps -ef | grep cub_server | grep -v grep | awk '{print $9}'`
DATED=`date +"%Y%m%d"`
DATEH=`date +"%Y%m%d-%H%M"`
BackupDIR="/data/DB_Backup"
## -D --destination-path
## -z --compress
## -l --level ## 0 Full, 1 Diff, 2 Inc
## -o --output-file
## -C --CS-mode (Online, ServerClient Mode)
## -S --SA-mode (Offline)
for DNAME in $DB_NAME
do
mkdir -p $BackupDIR/$DATED/${DNAME}
cubrid backupdb -C -z -D $BackupDIR/$DATED/${DNAME}/ --l 0 -o $BackupDIR/$DATED/${DNAME}/${DNAME}_$DATEH.log ${DNAME}
sleep 2
cp $CUBRID_DATABASES/databases.txt $BackupDIR/$DATED/${DNAME}/${DNAME}_databases.txt
sleep 2
/bin/gzip $BackupDIR/$DATED/$DNAME/${DNAME}_bk0v000
done
## Cubrid Engine Backup ##
DATEW=`date +%a` # Day Of Week
if [ $DATEW = "Sun" ] ; then
mkdir $BackupDIR/$DATED/ENGINE
CUBRID_HOME="/usr/local/cubrid/CUBRID/"
tar -cvzf $BackupDIR/$DATED/ENGINE/Cubrid.engine.$DATED.tar.gz --exclude $CUBRID_HOME/databases $CUBRID_HOME
fi
###########################################################################
incremental
###########################################################################
#! /bin/bash
#-------------------------------------------------------------------------------
# set CUBRID environment variables
#-------------------------------------------------------------------------------
. /home/cubrid/.cubrid.sh
#-------------------------------------------------------------------------------
DB_NAME=`ps -ef | grep cub_server | grep -v grep | awk '{print $9}'`
DATED=`date +"%Y%m%d"`
DATEH=`date +"%Y%m%d-%H%M"`
BackupDIR="/data/DB_Backup"
## -D --destination-path
## -z --compress
## -l --level ## 0 Full, 1 Diff, 2 Inc
## -o --output-file
## -C --CS-mode (Online, ServerClient Mode)
## -S --SA-mode (Offline)
for DNAME in $DB_NAME
do
mkdir -p $BackupDIR/${DATED}_Diff/${DNAME}
cubrid backupdb -C -z -D $BackupDIR/${DATED}_Diff/${DNAME}/ --l 1 -o $BackupDIR/${DATED}_Diff/${DNAME}/${DNAME}_$DATEH.log ${DNAME}
sleep 2
cp $CUBRID_DATABASES/databases.txt $BackupDIR/${DATED}_Diff/${DNAME}/${DNAME}_databases.txt
sleep 2
/bin/gzip $BackupDIR/$DATED/$DNAME/${DNAME}_bk1v000
done
## Cubrid Engine Backup ##
#mkdir $BackupDIR/$DATED/ENGINE
#CUBRID_HOME="/usr/local/cubrid/CUBRID/"
#tar -cvzf $BackupDIR/$DATED/ENGINE/Cubrid.engine.$DATED.tar.gz --exclude $CUBRID_HOME/databases $CUBRID_HOME
###########################################################################
삭제rm
###########################################################################
#!/bin/bash
cd /data/DB_Backup
DATE=`date -d '181 day ago' +"%Y%m%d"`
for i in `ls |sort -u`
do
if [ -d $i -a "$i" -lt "$DATE" ]
then
#echo "$i 는삭제 대상입니다."
rm -rf $i
if [ $? -eq "0" ]
then
echo -e "`date`\tBackup RM : $i" >> backup.log
fi
elif [ -d $i -a "Diff" == "`echo $i | awk -F_ '{print $2}'`" -a "`echo $i | awk -F_ '{print $1}'`" -lt "$DATE" ]
then
#echo "$i 는삭제 대상입니다."
rm -rf $i
if [ $? -eq "0" ]
then
echo -e "`date`\tBackup RM : $i" >> backup.log
fi
else
echo "$i는 삭제 대상이 아닙니다."
fi
done
위는 스크립트화 한거고 개인적으로 서버에서 이렇게도 가능하다.
cubrid backupdb -C -z -D /backup/20221201/po --l 0 -o /backup/20221201/full_db_name.log db_name@localhost
'ETC.' 카테고리의 다른 글
D'amo VTI 암호화 테이블 컬럼 추가 (0) | 2023.07.17 |
---|---|
cubrid 설치 및 DB LINK 설정 (0) | 2023.07.07 |