| 前提:1、需要知道的信息:
 Oracle 的system密碼以及要備份數據庫賬戶的賬戶名和密碼
 Sco unix 的root密碼、Oracle密碼
 2、會使用vi編輯文件、mkdir創建文件夾、chmod改變文件權限、su 切換用戶、文件的執行
 3、了解sco unix的用戶、組、權限及crontab的用途、Oracle的dmp文件生成
 一、建立數據庫dmp文件存放目錄-
 
 #su - Oracle$cd /dbf
 $mkdir dmpbak
 $cd dmpbak
 $mkdir zd
 $mkdir cm
 二、建立導出數據庫dmp的文件
 1、指定目錄
 #su - Oracle
 $cd bin
 2、用vi編輯exp_t文件
 $vi exp_t
 exp_t內容:
 Oracle_HOME=/oracle
 Oracle_SID=ora7
 Oracle_TERM=ansi
 export Oracle_HOME ORACLE_SID ORACLE_TERM
 MENU5PATH=$Oracle_HOME/forms30/admin/resource
 export MENU5PATH
 ORATERMPATH=$Oracle_HOME/forms30/admin/resource
 export ORATERMPATH
 NLS_LANG=American_America.ZHS16CGB231280
 export NLS_LANG
 ORA_NLS=/Oracle/ocommon/nls/admin/data
 export ORA_NLS
 home1='/dbf/dmpbak'
 dt1=`date "+%y%m%d%H%M"`
 echo ' ' >'$home1/'new_record
 file_name="$home1"/zd/zd"$dt1"
 echo $file_name >>'$home1'/new_record
 $Oracle_HOME/bin/exp zd/zdzd file=$file_name.dmp owner=zd grants=y buffer=204800 rows=y indexes=y compress=y
 file_name="$home1"/cm/cm"$dt1"
 echo $file_name >>'$home1'/new_record
 $Oracle_HOME/bin/exp common/cmcm file=$file_name.dmp owner=common grants=y buffer=204800 rows=y indexes=y compress=y
 file='/dbf/dmpbak/new_record'
 backup_dir='/Oracle/sec_back'
 if [ -d $backup_dir ]
 then
 for i in `cat $file`
 do
 cp $i $backup_dir/
 done
 echo ' '>$file
 fi
 3、給exp_t權限
 $chmod 755 exp_t
 4、測試exp_t
 $cd /Oracle/bin
 $exp_t
 5、查看dmp文件是否生成
 $cd /dbf/dmpbak/zd
 $ls
 如果生成dmp文件,證明exp_t可以使用
 三、編輯刪除dmp文件的腳本(因為不可能備份太多數據,一般留24個小時的就可以了)
 1、用vi編輯deldmp文件
 # su - Oracle
 $cd /Oracle/bin
 $vi deldmp
 內容:
 home1='/dbf/dmpbak'
 TZ=CST+16;export TZ
 dt1='date"+%y%m%d"'
 file_name="$home1"/zd/zd"$dt1"
 rm $file_name*.dmp
 file_name="$home1"/cm/cm"$dt1"
 rm $file_name*.dmp
 TZ=CST-16;export TZ
 2、檢查腳本作用
 $/Oracle/bin/deldmp
 四、編輯crontab
 #crontab -e
 增加行:
 35 * * * * su - Oracle -c /oracle/bin/exp_t
 55 1 * * * /Oracle/bin/deldmp
 第1行意思是每天每個小時的35分備份一次dmp文件
 第2行意思是每天1點55刪除前面一天的dmp內容
 
 本文出自:億恩科技【www.endtimedelusion.com】
 
 
		服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM] |