關於SCO unix 系統下定時備份oracle資料庫dmp檔案(轉)

ba發表於2007-08-15
關於SCO unix 系統下定時備份oracle資料庫dmp檔案(轉)[@more@]前提:
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天的資料會覆蓋第一天的資料

以上為個人總結,已經經過試驗,不足之處會進行改進,希望對大家有所幫助

前面做的複雜了,修改一下,其實沒必要刪除,直接覆蓋就可以了

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-959735/,如需轉載,請註明出處,否則將追究法律責任。

相關文章