相信有很多的的系統治理員幾乎每天都在做著同樣的工作,就是對相關的數據進行備份。萬一某天疏忽了,而恰巧這天系統正好發生一些故障,需要進行數據恢復,那麼此時就無能為力了。談一談UNIX環境下Oracle數據庫的自動備份,以起到拋磚引玉的作用。
我們計劃讓數據庫在晚上23點做eXPort導出備份,在凌晨2點將備份文件拷貝到磁帶上,在凌晨4點將備份文件拷貝到另一台UNIX機器上,為此我們可進行如下操作:
導出數據庫
export命令將數據庫中的數據備份成一個二進制文件,它通常有三種模式:用戶模式、表模式和整個Oracle數據庫模式。本文擬采用用戶模式,備份之前,應先建立一個備份目錄,以容納備份文件,比如可建一個/backup目錄。
接著我們可在UNIX的Oracle目錄下(也可以是其它目錄)分別建立兩個文件ora—backup,tar—backup。需要說明的是,前一個文件需要對Oracle的參數進行初始化,為了方便起見,我們不妨將初始化命令放到一個文件中(文件名姑且定為ora—env),再由第一個文件調用它。
1. ora—env文件對Oracle的參數進行初始化,其內容如下:
- Oracle—HOME=$ORACLE—HOME;export Oracle—HOME
- Oracle—SID=ora73;export Oracle—SID
- Oracle—TERM=sun;export Oracle—TERM
- LD—LIBRARY—PATH=$Oracle—HOME/lib;export LD—LIBRARY—PATH
- ORA—NLS32=$Oracle—HOME/ocommon/nls/admin/data;export ORA—NLS
- PATH=.:/usr/ccs/bin:/usr/UCb:$Oracle—HOME/bin:$PATH;export PATH
- DISPLAY=host1:0;export DISPLAY
- NLS—LANG=american—america.zhs16cgb231280;export NLS—LANG
2. ora—backup文件對Oracle數據庫做export導出,導出的文件名可以任意定,本文定為字母“xx”加當天日期,即假如當天日期是12月10號,則導出的文件名為“xx1210.dmp”,以區別於其它日期的備份文件。
ora—backup文件內容:
- ./Oracle/ora—env
初始化Oracle數據庫
- rq=′date +″%m%d″ ′
把當天日期賦予變量rq
- rm /backup/
清空 /backup目錄
- exp test/test file=/backup/xx$rq.dmp log=/backup/xx$rq.log
本命令用於在$提示符下,導出test用戶的數據(其口令亦為test),導出文件及日志均放在/backup目錄下。