COUCHBASE BACKUP AND RECOVERY
# Couchbase có các loại backup sau :
- Full backup
- Differential incremental backup
- Cumulative incremetal backup (accu)
COUCHBASE RESTORE
- Full backup
- Differential incremental backup
- Cumulative incremetal backup (accu)
SAMPLE COUCHBASE BACKUP SCRIPT
#!/bin/bash
# File: couchbase_backup.sh
# Author: Chad Dimatulac
# Description: This is a sample backup for Couchbase.
# A full backup kicks in at a designated day (i.e. Saturday) and will have a cumulative backup on succeeding days.
# The script uses the BACKUP_PATH/current as its active directory path to store the backup for the week.
# As the week cycles to the next full backup, the current dir data will be moved to archive and an empty
# current dir will be available to the backup process.
# To run:
# nohup ./couchbase_backup.sh &
#
LOG_DATE=`date +%Y%m%d%H%M`
DAY_OF_WEEK=`date +%a`
CB_HOME=/app/couchbase/inst1/opt/couchbase
PATH=$PATH:$CB_HOME/bin ; export PATH
CBBACKUP=$CB_HOME/bin/cbbackup
BACKUP_PATH=/app/couchbase/inst1/backup
CLUSTER_NODE_URL=http://lxnode5.vlabs.net:8091
RSTATUS=1
HNAME=`hostname`
RTUSER=`id |cut - d"(" - f2 | cut - d ")" - f1`
CBUSER=couchbas
DBU=Administrator
DBP=mypass
FBU_DAY=Sat
#- - check if a directory for backup exist
if [ ! - d $BACKUP_PATH ];
then
mkdir - p $BACKUP_PATH
fi
#- - check if a directory for backup log exist
if [ ! - d $BACKUP_PATH/log ];
then
mkdir - p $BACKUP_PATH/log
fi
#- - check required backup sub dir (current,archive)
if [ ! - d $BACKUP_PATH/current ];
then
mkdir $BACKUP_PATH/current
fi
if [ ! - d $BACKUP_PATH/archive ];
then
mkdir $BACKUP_PATH/archive
fi
#- - Select backup mode to use
if [ "$DAY_OF_WEEK" = "$FBU_DAY" ]
then
#- - Full backup
CBB_MODE=full
else
#- - Cumulative backup
FCOUNT=`find $BACKUP_PATH/current - name "*full" - print | wc - l`
if [ $FCOUNT - eq 0 ];
then
CBB_MODE=full
else
CBB_MODE=accu
fi
fi
#- - Initialize the log file.
CBB_LOG_FILE=${BACKUP_PATH}/log/couchbase_backup_${CBB_MODE}_${LOG_DATE}.log
echo >> $CBB_LOG_FILE
chmod 666 $CBB_LOG_FILE
echo Runtime Script: $0 >> $CBB_LOG_FILE
echo Runtime User: $RTUSER >> $CBB_LOG_FILE
echo PID: $$ >> $CBB_LOG_FILE
echo Hostname: $HNAME >> $CBB_LOG_FILE
echo Couchbase OS User: $CBUSER >> $CBB_LOG_FILE
echo ==== started on `date` ==== >> $CBB_LOG_FILE
echo >> $CBB_LOG_FILE
#- - Run the backup
if [ ! - f $BACKUP_PATH/.cbb_lock ];
then
#- - set lock file
echo $$ >> $BACKUP_PATH/.cbb_lock
#- - perform backup
if [ "$CBB_MODE" = "full" ]
then
mv $BACKUP_PATH/current $BACKUP_PATH/archive/cb_backup_$LOG_DATE
mkdir $BACKUP_PATH/current
fi
echo Backup Mode: $CBB_MODE >> $CBB_LOG_FILE
CMD_STR="$CBBACKUP $CLUSTER_NODE_URL $BACKUP_PATH/current - u $DBU - p $DBP - m $CBB_MODE - x cbb_max_mb=2048"
if [ "$RTUSER" = "root" ]
then
su - $CBUSER - c "$CMD_STR" >> $CBB_LOG_FILE
RSTATUS=$?
else
/bin/bash - c "$CMD_STR" >> $CBB_LOG_FILE
RSTATUS=$?
fi
#- - release lock file
rm $BACKUP_PATH/.cbb_lock
else
echo >> $CBB_LOG_FILE
echo WARNING: Backup aborted. >> $CBB_LOG_FILE
echo An existing backup process has held a lockout and may still be running, please check. >> $CBB_LOG_FILE
echo PID: >> $CBB_LOG_FILE
cat $BACKUP_PATH/.cbb_lock >> $CBB_LOG_FILE
echo >> $CBB_LOG_FILE
fi
if [ "$RSTATUS" = "0" ]
then
LOGMSG="Ended successfully"
else
LOGMSG="Ended in error"
fi
echo >> $CBB_LOG_FILE
echo Runtime Script: $0 >> $CBB_LOG_FILE
echo ==== $LOGMSG on `date` ==== >> $CBB_LOG_FILE
echo >> $CBB_LOG_FILE
-
#/opt/couchbase/bin/cbrestore -u Administrator -p password /var/backups/couchbases/current/2019-06-03T085202Z/2019-06-03T085202Z-full/bucket-test/ couchbase://192.168.209.131:8091 -b test


Nhận xét
Đăng nhận xét