COUCHBASE BACKUP AND RECOVERY

# Couchbase có các loại backup sau :
  - 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






-



































COUCHBASE RESTORE

#/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

Bài đăng phổ biến từ blog này

ActiveMQ 5.x

Redo and undo Log in MySQL transaction

[Kubernetes Series] - Bài 19 - Adding custom resource to Kubernetes