LINUX數據庫dmp檔案備份並壓縮指令碼

2020-08-12 14:50:54

#!/bin/bash
export ORACLE_BASE=/home/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl 
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
date=`date +%Y%m%d%H%M`   
days=60  #保留天數
orsid=orcl
orowner=user #執行備份的使用者
bakuser=user   #備份的使用者
bakpass=pass  #執行備份的使用者密碼
bakdir=/home/oracle/datadump  #備份路徑
rsyncdir=/home/orafile/datadump
bakdata=$orowner"_"$date.dmp 
baklog=$orowner"_"$date.log 
ordatabak=$orowner"_"$date.tar.gz
ordatadmp=$orowner"_"$date.dmp
cd $bakdir
mkdir -p $orowner
cd $orowner
exp $bakuser/$bakpass@$orsid file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog   owner=$orowner
#nohup zip -m $ordatabak $ordatadmp $baklog #壓縮檔案zip
tar -zcvf $ordatabak $ordatadmp $baklog
#刪除備份檔案
find $bakdir/$orowner -type f -name "*.log" -exec rm {} \; 
#刪除日誌檔案
find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \; 
#刪除60天前的備份(注意:{} \中間有空格)
find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; 



#nohup zip -m $ordatabak $ordatadmp $baklog #壓縮檔案zip 此壓縮方式檔案太大會導致壓縮失敗