自動(dòng)備份Oracle數(shù)據(jù)庫(kù)
相信為數(shù)不少的系統(tǒng)管理員每天都在做著同一樣的工作——對(duì)數(shù)據(jù)進(jìn)行備份。一旦哪一天疏忽了,而這一天系統(tǒng)又恰恰發(fā)生了故障,需要進(jìn)行數(shù)據(jù)恢復(fù),那么此時(shí)就無(wú)能為力了。假如每天設(shè)定一個(gè)固定的時(shí)間,系統(tǒng)自動(dòng)進(jìn)行備份,那該多好??!下面筆者結(jié)合實(shí)踐經(jīng)驗(yàn),談一談UNIX環(huán)境下Oracle數(shù)據(jù)庫(kù)的自動(dòng)備份,以起到拋磚引玉的作用。
我們計(jì)劃讓數(shù)據(jù)庫(kù)在晚上23點(diǎn)做export導(dǎo)出備份,在凌晨2點(diǎn)將備份文件拷貝到磁帶上,在凌晨4點(diǎn)將備份文件拷貝到另一臺(tái)UNIX機(jī)器上,為此我們可進(jìn)行如下操作:
一、導(dǎo)出數(shù)據(jù)庫(kù)
export命令將數(shù)據(jù)庫(kù)中的數(shù)據(jù)備份成一個(gè)二進(jìn)制文件,它通常有三種模式:用戶(hù)模式、表模式和整個(gè)數(shù)據(jù)庫(kù)模式。本文擬采用用戶(hù)模式,備份之前,應(yīng)先建立一個(gè)備份目錄,以容納備份文件,比如可建一個(gè)/backup目錄。接著我們可在UNIX的Oracle目錄下(也可以是其它目錄)分別建立兩個(gè)文件ora—backup,tar—backup。需要說(shuō)明的是,前一個(gè)文件需要對(duì)Oracle的參數(shù)進(jìn)行初始化,為了方便起見(jiàn),我們不妨將初始化命令放到一個(gè)文件中(文件名姑且定為ora—env),再由第一個(gè)文件調(diào)用它。
1. ora—env文件對(duì)Oracle的參數(shù)進(jìn)行初始化,其內(nèi)容如下:
2. ora—backup文件對(duì)數(shù)據(jù)庫(kù)做export導(dǎo)出,導(dǎo)出的文件名可以任意定,本文定為字母“xx”加當(dāng)天日期,即假如當(dāng)天日期是12月10號(hào),則導(dǎo)出的文件名為“xx1210.dmp”,以區(qū)別于其它日期的備份文件。
[NextPage]
ora—backup文件內(nèi)容:
?。3跏蓟疧racle數(shù)據(jù)庫(kù)
?。0旬?dāng)天日期賦予變量rq
?。?清空 /backup目錄
本命令用于在$提示符下,導(dǎo)出test用戶(hù)的數(shù)據(jù)(其口令亦為test),導(dǎo)出文件及日志均放在/backup目錄下。
二、磁帶備份
tar—backup文件將用export命令導(dǎo)出的數(shù)據(jù)文件拷貝到磁帶上。
tar—backup文件內(nèi)容:
本命令可將/backup目錄下當(dāng)天產(chǎn)生的文件備份到磁帶上。本文件中,tar命令使用了三個(gè)參數(shù),其中r選項(xiàng)表示向磁帶上拷入文件而不破壞磁帶原來(lái)內(nèi)容,v選項(xiàng)表示在拷貝過(guò)程中顯示文件信息,f選項(xiàng)后面加上磁帶設(shè)備名,指定文件向何處拷貝,n選項(xiàng)表示磁帶機(jī)不倒帶。/dev/rmt/0表示UNIX主機(jī)第一個(gè)磁帶驅(qū)動(dòng)器,同理,/dev/rmt/1則表示UNIX主機(jī)第二個(gè)磁帶驅(qū)動(dòng)器,依此類(lèi)推。
ora—env、ora—backup、tar—backup文件編寫(xiě)完成后,分別使用下述命令:
這樣,三個(gè)文件就都變成了可執(zhí)行文件。
三、異地備份
我們知道,通常可用FTP命令在兩臺(tái)主機(jī)間傳輸數(shù)據(jù),但一般是通過(guò)交互方式實(shí)現(xiàn)的,即需要手工輸入目標(biāo)主機(jī)的IP地址、用戶(hù)名、口令等。顯然,這不符合自動(dòng)備份的要求。所幸的是,我們可以通過(guò)編寫(xiě)一個(gè).netrc的文件來(lái)達(dá)到目標(biāo)。這一文件必須命名為.netrc,且必須存放在啟動(dòng)FTP命令的機(jī)器上的用戶(hù)注冊(cè)目錄中,該文件的權(quán)限應(yīng)禁止組內(nèi)或其它用戶(hù)進(jìn)行讀訪(fǎng)問(wèn)。這樣,當(dāng)用戶(hù)使用FTP命令的時(shí)候,系統(tǒng)將會(huì)在該用戶(hù)的注冊(cè)目錄中尋找.netrc文件,如果能夠?qū)ふ业?,將?huì)首先執(zhí)行該文件,否則,會(huì)交互式地提示用戶(hù)輸入用戶(hù)名、口令等。
1 3 4
[NextPage]
在使用FTP命令之前,應(yīng)先在另一臺(tái)作備份用的UNIX機(jī)器上建一目錄,以容納備份文件,本文建的目錄是/pub 。需要指出的是,為了加快備份速度,兩臺(tái)主機(jī)之間的傳輸速率應(yīng)盡可能的高,最好位于同一局域網(wǎng)上。
.netrc文件內(nèi)容如下:
machine host2
?。?nbsp;host2為作備份用的主機(jī)名
login oracle
#oracle為備份主機(jī)上的一個(gè)用戶(hù)
password oracle
?。racle用戶(hù)的口令為oracle
macdef init
#定義一個(gè)名為init的宏,它將在自動(dòng)注冊(cè)進(jìn)程的最后被執(zhí)行
bin
?。N募膫鬏敺绞皆O(shè)為二進(jìn)制
lcd /backup
?。?nbsp;進(jìn)入本地工作目錄/backup
cd /pub
# 進(jìn)入備份主機(jī)目錄/pub
mput
?。?nbsp;將/backup目錄下的所有文件傳輸至備份主機(jī)
bye
?。M顺鯢TP會(huì)話(huà)進(jìn)程
.netrc文件編寫(xiě)完成后,使用下述命令:
chmod 600 .netrc
這樣,.netrc文件就只能被該用戶(hù)所訪(fǎng)問(wèn)。
1 2 4
[NextPage]
四、啟動(dòng)備份進(jìn)程
Cron是一個(gè)永久進(jìn)程,它由/etc/rc.local啟動(dòng)執(zhí)行。Cron檢查/var/spool/cron/crontabs/目錄中的文件,找到所要執(zhí)行的任務(wù)和執(zhí)行任務(wù)的時(shí)間。
Crontab文件的每一行由六個(gè)域(minutes、hours、day of month、month、day of week、 command)組成,域之間用空格或Tab分開(kāi),其中:
minutes:分鐘域,值的范圍是0到59
hours:小時(shí)域,值的范圍是0到23
day of month:日期,值的范圍是1到31
month:月份,值的范圍是1到12
day of week:星期,值的范圍是0到6,星期日值為0
command:所要運(yùn)行的命令
如果一個(gè)域是,表明命令可以在該域所有可能的取值范圍內(nèi)執(zhí)行。
如果一個(gè)域是由連字符隔開(kāi)的兩個(gè)數(shù)字,表明命令可以在兩個(gè)數(shù)字之間的范圍內(nèi)執(zhí)行(包括兩個(gè)數(shù)字本身)。
如果一個(gè)域是由逗號(hào)隔開(kāi)的一系列值組成的,表明命令可以在這些值組成的范圍內(nèi)執(zhí)行。
如果日期域和星期域都有值,則這兩個(gè)域都有效。
現(xiàn)在,我們編寫(xiě)一個(gè)文件,用以啟動(dòng)自動(dòng)備份進(jìn)程。值得注意的是,該文件只能在Oracle用戶(hù)名下用crontab -e 命令來(lái)編輯,否則將不會(huì)被定時(shí)執(zhí)行,文件名定為Oracle,文件將放在/var/spool/cron/crontabs 目錄下。編輯完成后,可以在Oracle的$提示符下,用crontab -l命令來(lái)查看。
Oracle文件內(nèi)容:
0 23 /oracle/ora—backup
# 每天23點(diǎn)對(duì)數(shù)據(jù)庫(kù)執(zhí)行備份
0 2 /oracle/tar—backup
?。?nbsp;每天2點(diǎn)將文件備份到磁帶上
0 4 ftp -i&n正在看的ORACLE教程是:自動(dòng)備份Oracle數(shù)據(jù)庫(kù)。bsp;host2
?。?nbsp;每天4點(diǎn)將文件備份到另一臺(tái)主機(jī)上
經(jīng)過(guò)以上的操作后,系統(tǒng)每天晚上將自動(dòng)產(chǎn)生一個(gè)備份,并且自動(dòng)將備份文件分別拷貝到磁帶上和另一臺(tái)主機(jī)上。系統(tǒng)管理員需要做的是,隔幾天換一盤(pán)磁帶(更換磁帶的周期取決于備份文件的大小和磁帶的容量)和清理備份目錄。這樣,他們就可以從備份數(shù)據(jù)的繁瑣中解脫出來(lái),去做其它更有意義的工作。而數(shù)據(jù)庫(kù)既實(shí)現(xiàn)了磁帶備份,又實(shí)現(xiàn)了異地備份,相應(yīng)的安全性也大大提高了。
上一頁(yè)
- Oracle自動(dòng)備份及自動(dòng)備份步驟
- Linux下通過(guò)腳本自動(dòng)備份Oracle數(shù)據(jù)庫(kù)并刪除指定天數(shù)前的備份
- Oracle自動(dòng)備份腳本
- Linux 自動(dòng)備份oracle數(shù)據(jù)庫(kù)詳解
- 自動(dòng)備份Oracle數(shù)據(jù)庫(kù)
- Windows系統(tǒng)下Oracle數(shù)據(jù)庫(kù)每天自動(dòng)備份
- Linux oracle數(shù)據(jù)庫(kù)自動(dòng)備份自動(dòng)壓縮腳本代碼
- 自動(dòng)備份Oracle數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)Oracle數(shù)據(jù)的異地的自動(dòng)備份
- Oracle數(shù)據(jù)庫(kù)自動(dòng)備份腳本分享(超實(shí)用)
相關(guān)文章
Oracle學(xué)習(xí)記錄之使用自定義函數(shù)和觸發(fā)器實(shí)現(xiàn)主鍵動(dòng)態(tài)生成
這篇文章主要介紹了Oracle學(xué)習(xí)記錄之使用自定義函數(shù)和觸發(fā)器實(shí)現(xiàn)主鍵動(dòng)態(tài)生成,需要的朋友可以參考下2015-11-11Oracle11g r2 卸載干凈重裝的詳細(xì)教程(親測(cè)有效已重裝過(guò))
Oracle 的安裝和卸載相較于其他 mysql 要麻煩些,小編特此分享一篇教程關(guān)于Oracle11g 徹底卸載干凈并重新安裝,有需要的朋友可以參考下本文2021-06-06Oracle客戶(hù)端連接報(bào)錯(cuò)ORA-12545問(wèn)題的解決辦法
這篇文章主要給大家介紹了關(guān)于Oracle客戶(hù)端連接報(bào)錯(cuò)ORA-12545問(wèn)題的解決辦法,ora12545因目標(biāo)主機(jī)或?qū)ο蟛淮嬖?連接失敗,文中通過(guò)圖文將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03plsql 連接oracle數(shù)據(jù)庫(kù)詳細(xì)配置的方法步驟
這篇文章主要介紹了plsql 連接oracle數(shù)據(jù)庫(kù)詳細(xì)配置的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Oracle中實(shí)現(xiàn)刪除重復(fù)數(shù)據(jù)只保留一條
這篇文章主要介紹了Oracle中實(shí)現(xiàn)刪除重復(fù)數(shù)據(jù)只保留一條,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Oracle導(dǎo)出文本文件的三種方法(spool,UTL_FILE,sqluldr2)
這篇文章主要介紹了Oracle導(dǎo)出文本文件的三種方法(spool,UTL_FILE,sqluldr2),需要的朋友可以參考下2023-05-05Oracle minus用法詳解及應(yīng)用實(shí)例
這篇文章主要介紹了Oracle minus用法詳解及應(yīng)用實(shí)例的相關(guān)資料,這里對(duì)oracle minus的用法進(jìn)行了具體實(shí)例詳解,需要的朋友可以參考下2017-01-01Oracle 數(shù)據(jù)庫(kù)管理腳本命名規(guī)范
Oracle 數(shù)據(jù)庫(kù)管理腳本命名規(guī)范...2007-03-03