前提:
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 "+%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
例如:11點35生成的文件是:1135.dmp
如果生成dmp文件,證明exp_t可以使用
三、編輯crontab
#crontab -e
增加行:
35 * * * * su - oracle -c /Oracle/bin/exp_t
意思是每天每個小時的35分備份一次dmp文件
第2天的數據會覆蓋第一天的數據
以上為個人總結,已經經過試驗,不足之處會進行改進,希望對大家有所幫助
前面做的復雜了,修改一下,其實沒必要刪除,直接覆蓋就可以了