Oracle數(shù)據(jù)庫恢復(fù)管理器及特殊包的應(yīng)用_第1頁
Oracle數(shù)據(jù)庫恢復(fù)管理器及特殊包的應(yīng)用_第2頁
Oracle數(shù)據(jù)庫恢復(fù)管理器及特殊包的應(yīng)用_第3頁
Oracle數(shù)據(jù)庫恢復(fù)管理器及特殊包的應(yīng)用_第4頁
Oracle數(shù)據(jù)庫恢復(fù)管理器及特殊包的應(yīng)用_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、oracle數(shù)據(jù)庫恢復(fù)管理器及特殊包的應(yīng)用郭濤湖南省水利水電機(jī)械施工公司摘要:多數(shù)oracle數(shù)據(jù)庫管理員會(huì)遇到數(shù)據(jù)庫的備份恢復(fù)和將某表屮數(shù)據(jù)定期備份形成歷史 流水?dāng)?shù)據(jù)以便今后查詢統(tǒng)計(jì)等問題,本文通過對(duì)oracle數(shù)據(jù)庫實(shí)用工具恢復(fù)管理器及 dbms_job包工作機(jī)制的分析,提出了應(yīng)用oracle數(shù)據(jù)庫恢復(fù)管理器和利用dbms_job包實(shí)現(xiàn) 存儲(chǔ)過程自動(dòng)執(zhí)行來解決問題的方法。關(guān)鍵詞:dba、備份恢復(fù)、恢復(fù)管理器、dbms_job包一. 引言:隨著oracle大型數(shù)據(jù)庫系統(tǒng)在企業(yè)的廣泛應(yīng)用,系統(tǒng)數(shù)據(jù)量的快速增長(zhǎng),相信為數(shù)不少 的oracle dba每天都在忙于做著重復(fù)的工作一對(duì)數(shù)據(jù)庫進(jìn)行備份。如

2、果一旦哪一天疏忽了, 而這一天系統(tǒng)又恰恰發(fā)生了故障,需要進(jìn)行數(shù)據(jù)恢復(fù),那么此時(shí)對(duì)dba來說可能就是一場(chǎng)災(zāi) 難,因?yàn)樗赡軣o法完整地恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)。此外,在數(shù)據(jù)庫的應(yīng)用屮我們會(huì)經(jīng)常碰到 這樣的需求:將一些重要數(shù)據(jù)表中的數(shù)據(jù)定期備份到另一些數(shù)據(jù)表小去。例如在企業(yè)員工工資 管理系統(tǒng)中,每月工資報(bào)表打印完畢后,應(yīng)將當(dāng)月工資數(shù)據(jù)保存到工資歷史庫中去,以便今 后查詢及統(tǒng)計(jì)使用。通常我們釆用存儲(chǔ)過程來完成對(duì)數(shù)據(jù)的處理,這個(gè)過程由人工定期執(zhí)行 完成,操作起來很不方便。對(duì)于第一種情況,現(xiàn)在我們可利用oracle數(shù)據(jù)庫實(shí)用工具恢復(fù)管 理器來完成dba每天必須做的備份工作,而且可設(shè)定一個(gè)固定的時(shí)間,讓系統(tǒng)自動(dòng)進(jìn)

3、行備份。 對(duì)后一種情況,我們可以使用dbms.job包結(jié)合存儲(chǔ)過程來實(shí)現(xiàn)數(shù)據(jù)處理的自動(dòng)執(zhí)行。下面筆 者結(jié)合實(shí)踐經(jīng)驗(yàn),分別介紹其實(shí)現(xiàn)方法。二. oracle數(shù)據(jù)庫備份與恢復(fù)方式及特點(diǎn)oracle數(shù)據(jù)庫備份分為物理備份和邏輯備份。物理備份是數(shù)據(jù)庫文件拷貝的備份,冷 備份、熱備份屬于物理備份。導(dǎo)出/導(dǎo)入(export/import)工具用于進(jìn)行邏輯備份。導(dǎo)出(export)備份可拷貝數(shù)據(jù)與數(shù)據(jù)庫定義,并以oracle的內(nèi)部格式保存為二進(jìn)制文 件。相反,利用import則可將數(shù)據(jù)從二進(jìn)制文件放回到oracle數(shù)據(jù)庫中。但是導(dǎo)出(export) 備份機(jī)制不能提供時(shí)間點(diǎn)恢復(fù),而且不能和歸檔重做日志文件一起

4、使用。冷備份是在數(shù)據(jù)庫被正常關(guān)閉z后進(jìn)行的數(shù)據(jù)文件的物理備份。當(dāng)數(shù)據(jù)庫被關(guān)閉時(shí),被 數(shù)據(jù)庫使用的每一個(gè)文件都被備份下來。這些文件因而保持著數(shù)據(jù)關(guān)閉時(shí)的完整的映象。熱備份是在數(shù)據(jù)庫運(yùn)行的情況下,采用archive log mode方式備份數(shù)據(jù)的方法。這涉及 到將每個(gè)表空間設(shè)置為備份狀態(tài),然后備份英數(shù)據(jù)文件,最后將表空i'可恢復(fù)成正常的狀態(tài)。 數(shù)據(jù)庫可以從這個(gè)備份中完全地恢復(fù)過來,也可以通過歸檔的重做口志冋滾到前面時(shí)間的任恢復(fù)特性export導(dǎo)出冷備份熱備份邏輯型 物理型 物理型對(duì)以將任何數(shù)據(jù)庫對(duì)象恢復(fù)到它被導(dǎo)出時(shí)的狀態(tài) 可將數(shù)據(jù)庫恢復(fù)到它被關(guān)閉時(shí)的狀態(tài) 可將數(shù)據(jù)庫恢復(fù)到任一時(shí)間點(diǎn)的狀態(tài)以

5、上幾種備份方式都需要依賴dba人工操作完成,從而增加了 dba維護(hù)系統(tǒng)的負(fù)擔(dān)。當(dāng)dba需要維護(hù)多個(gè)0rac 1 e數(shù)據(jù)庫系統(tǒng)時(shí),還容易導(dǎo)致操作失誤,而且備份的數(shù)據(jù)不便于集中 統(tǒng)一管理。三. oracle數(shù)據(jù)庫恢復(fù)管理器及dbms_job包概述恢復(fù)管理器(rman)是一個(gè)使dba能很方便地對(duì)數(shù)據(jù)庫執(zhí)行備份和恢復(fù)任務(wù)的oracle 應(yīng)用工具,與以上介紹的幾種方式不同,它能夠提供dba針對(duì)企業(yè)數(shù)據(jù)庫備份與恢復(fù)操作 的集中控制。rman可以將備份記錄保存在恢復(fù)目錄中,oracle服務(wù)器保持對(duì)備份的跟蹤 o實(shí)際的物理備份拷貝將被存儲(chǔ)在指定的存儲(chǔ)系統(tǒng)上,可以是磁帶或磁盤。rman將全部備 份數(shù)據(jù)以orac

6、le特有的格式寫入到備份集文件中,通過rma7應(yīng)用工具來讀取。rman支持 建立除邏輯備份以外的所有類型的備份。下圖顯示了 rman的功能框圖。利用rman進(jìn)行備份恢復(fù)的條件是:1. 建立一個(gè)recovery_catalog,存放rman使用和維護(hù)著的目標(biāo)數(shù)據(jù)庫的信息,rman 使用這些信息去決定如何執(zhí)行備份和恢復(fù)的請(qǐng)求。通常是把它建在另一個(gè)oracle數(shù)據(jù)庫的一 個(gè)模式里,即需要建立一個(gè)用戶,該用戶需要有recovery_catalog_owncr權(quán)限。2. 目標(biāo)數(shù)據(jù)庫必須是在archivelog模式下運(yùn)行,因?yàn)檫@樣,日志才能歸檔,而rman 正是利用歸檔日志進(jìn)行數(shù)據(jù)恢復(fù),所以這是一個(gè)必備條

7、件。同時(shí)archivelog模式也是數(shù)據(jù)庫 在線備份的必備條件。3. rman備份屮,如果采用磁帶機(jī)備份,需要安裝第三方介質(zhì)管理庫(mml) o恢復(fù)管理器保存在rman屮注冊(cè)的全部數(shù)據(jù)庫的記錄。當(dāng)rman被用來啟動(dòng)備份或恢復(fù)數(shù) 據(jù)庫時(shí),它將目標(biāo)數(shù)據(jù)庫與恢復(fù)目錄中可用的數(shù)據(jù)庫id進(jìn)行驗(yàn)證。如果條件一致,rman對(duì) 目標(biāo)數(shù)據(jù)庫至少建立兩個(gè)通道,其中一個(gè)通道只是対目標(biāo)數(shù)據(jù)庫的一個(gè)遠(yuǎn)程調(diào)用,使用 pl/sql接口來執(zhí)行備份與恢復(fù)操作。rman使用它自己的pl/sql引擎編譯這些用戶命令,并 在目標(biāo)數(shù)據(jù)庫上執(zhí)行這些命令。執(zhí)行過程不需要用戶干預(yù),rma7記錄追蹤在數(shù)據(jù)庫上執(zhí)行的 全部備份與恢復(fù)操作,因而在

8、很大程度上避免了 dba錯(cuò)誤導(dǎo)致的危險(xiǎn)。同時(shí)rman提供了多 種命令用于檢查和測(cè)試數(shù)據(jù)庫備份集與拷貝,并確保備份文件完整無缺且能夠用于實(shí)現(xiàn)恢復(fù)。 由上述可見,釆用恢復(fù)管理器做備份與恢復(fù)的管理與其他方式相比較具有明顯的優(yōu)勢(shì),可大大減少dba做備份工作的工作量和操作失誤。dbms_job包是oracle提供的內(nèi)部函數(shù)包,提供了管理和調(diào)度作業(yè)隊(duì)列中的作業(yè)定吋執(zhí) 行的控制機(jī)制。所有作業(yè)由s7p后臺(tái)進(jìn)程執(zhí)行。當(dāng)snp進(jìn)程運(yùn)行一個(gè)作業(yè)時(shí),進(jìn)程將首先創(chuàng) 建會(huì)話,并恢復(fù)作業(yè)運(yùn)行時(shí)的環(huán)境參數(shù),再調(diào)度作業(yè)運(yùn)行。dbms_job包的主要功能有:提交 submit 0 ,執(zhí)行run(),刪除remove()等。這樣,

9、我們就可以用這個(gè)包將創(chuàng)建的存儲(chǔ)過程放 入oracle數(shù)據(jù)庫系統(tǒng)的作業(yè)隊(duì)列屮去,由系統(tǒng)按時(shí)調(diào)度運(yùn)行。四. 應(yīng)用實(shí)例4. 1 rman做數(shù)據(jù)庫在線備份應(yīng)用實(shí)例這里以某公司業(yè)務(wù)處理計(jì)算機(jī)中心數(shù)據(jù)庫為例。用戶系統(tǒng)配置為:兩臺(tái)hp9000小型機(jī) (hostk host2),操作系統(tǒng)為hp-ux 11.0, oracle數(shù)據(jù)庫版本為8.0.5。兩臺(tái)機(jī)上各有一個(gè) oracle數(shù)據(jù)庫實(shí)例,分別運(yùn)行不同的業(yè)務(wù)處理系統(tǒng)。用戶要求設(shè)備7x24小時(shí)在線工作,原 則上運(yùn)行吋不允許數(shù)據(jù)庫關(guān)閉。這就使得我們只能采用在線備份方式解決問題。為安全起見, 我們?cè)诹硪慌_(tái)ibm服務(wù)器(host3)上安裝windows2000及-一個(gè)

10、獨(dú)立的orac 1 e數(shù)據(jù)庫,恢復(fù)目 錄就建在這個(gè)數(shù)據(jù)庫中,這臺(tái)服務(wù)器還配置了一臺(tái)磁帶加載機(jī),備份數(shù)據(jù)存放在磁帶上,這 樣即便哪臺(tái)機(jī)器出現(xiàn)故障我們也能夠?qū)崿F(xiàn)數(shù)據(jù)庫的完全恢復(fù),不過dba應(yīng)注意定期做恢復(fù)目 錄數(shù)據(jù)庫的備份。在備份策略上,我們釆用了全備份與歸檔日志備份相結(jié)合的方式,既不占 用過多的系統(tǒng)吋間,也相應(yīng)減少了備份的數(shù)據(jù)量。備份策略如下:(1) 每周日晚11: 00做數(shù)據(jù)庫在線全備份。(2) 每天12: 00, 18: 00做數(shù)據(jù)庫歸檔日志文件的在線備份。建立備份機(jī)制的操作如下(以hostl機(jī)為例):(1) 建立恢復(fù)目錄并注冊(cè)目標(biāo)數(shù)據(jù)庫。svrmgr> create tablespa

11、ce rmanspace datafile 5 rmandata, size 500m;svrmgr> create user rman identified by rman default tablespacermanspace temporary tablespace temp;svrmgr> grant connect, resource, recovery_catalog_owner to rman; 以上為建立rman表空間和用戶。$ sqlplus rman/rmansql> start ,/ora_01/app/oracle/product/8. 0. 5/rd

12、bms/admin/catrman"執(zhí)行創(chuàng)建恢復(fù)目錄操作$ rman target system/managoi咆hostl rcvcat rman/rmanhost3;連接目標(biāo)數(shù)據(jù)庫和恢復(fù)目錄rman> register database;-將目標(biāo)數(shù)據(jù)庫注冊(cè)到恢復(fù)目錄屮rman> resync catalog;-進(jìn)行同步目錄操作(2) 將目標(biāo)數(shù)據(jù)庫改為歸檔模式運(yùn)行。svrmgr> connect internalsvrmgr> startup mount dbnamesvrmgr> al ter database dbname archive log;

13、起用歸檔模式svrmgr> archive log start啟動(dòng)自動(dòng)歸檔模式svrmgr> alter database dbname open;-打開數(shù)據(jù)庫修改數(shù)據(jù)庫初始化參數(shù)文件init.ora,定義歸檔模式(自動(dòng))、歸檔日志文件保存 路徑、歸檔日志文件命名方法,重新啟動(dòng)數(shù)據(jù)庫。(3) 建立全備份腳本文件hotbackup. rcvoconnoct target i nterna1/orac1ehostlconnect rcvcat rman/rmanhost3run allocate channel 11 type ' sbt tape'backupincr

14、emental level 0skip inaccessibletag hot_db_bk_levelofilesperset 5format bk_%s_%p_%t" (database);一備份全部數(shù)據(jù)庫控制文件和數(shù)據(jù)文件sql j alter system archive log current,;backupfilesperset 20format 'al %s %p %t (archivelog al 1 delete input); 一備份歸檔日志,備份成功后刪除歸檔日志。若不成功,則不做刪除。歸檔日志備份腳本hotarcbackup. rev文件女u下:conn

15、ect target internal/oraclehostlconnect rcvcat rma.n/rmanhost3run allocate channel tl type 'sbt_tape'sql j alter system archive log currcnt'backupfilesperset 20format ' al_%s_%p_%t" (archivelog all delete input);(4) 利用unix的crontab命令定期自動(dòng)執(zhí)行備份腳本crontab命令用于指定一個(gè)文件,其行計(jì)劃命令以固定時(shí)間間隔執(zhí)行。cron

16、是一個(gè) 永久進(jìn)程,它rtl/etc/rc. local啟動(dòng)執(zhí)行。cron程序讀取、解釋并執(zhí)行crontab文件。 我們將需自動(dòng)定期執(zhí)行備份的腳本文件寫成shell命令行方式存入crontab文件中,由 系統(tǒng)定期調(diào)度執(zhí)行。crontab 文件的每一行由六個(gè)域(minutes、hoursday of month、month> day of weeks command)組成,域之間用空格或tab分開。現(xiàn)在,我們?cè)谀繕?biāo)機(jī)上編寫一個(gè)文件,用以啟動(dòng)自動(dòng)備份進(jìn)程。文件名定為oracle, 文件將放在/var/spool/cron/crontabs 目錄下。oracle文件內(nèi)容:0 23 * * 0 /

17、oracle/rman/rmem emdfile ahotbackup#星期天23點(diǎn)對(duì)數(shù)據(jù)庫執(zhí)行在線全備份0 12,18 * * * /orac1e/rman/rman cmdfile "hotarcbackup. rcvz#每天12點(diǎn),18點(diǎn)執(zhí)行歸檔文件備份經(jīng)過以上的操作后,系統(tǒng)每天自動(dòng)產(chǎn)生兩個(gè)歸檔fi志備份,每個(gè)星期天產(chǎn)生一個(gè)數(shù) 據(jù)庫完全備份。dba需要做的是,隔幾天換一盤磁帶(更換磁帶的周期取決于備 份文件的大小和磁帶的容量)和用rman定期檢查備份執(zhí)行情況。執(zhí)行恢復(fù)操作的rman腳本文件restore, rev如下(在host 1上運(yùn)行):connect targetconn

18、ect reveat rman/rmfinhost3run allocate channel tl type ' sbt_tape'allocate channel t2 type 'sbt tape* ;restore controlfile;sql j alter database mount"restore database;recover database;sql j alter database open resetlogs'4.2存儲(chǔ)過程定期自動(dòng)執(zhí)行的實(shí)例以卜為將salary表數(shù)據(jù)定時(shí)轉(zhuǎn)入salary_history表的應(yīng)用實(shí)例:創(chuàng)建存儲(chǔ)過程sql> create or replace procedure procempisbegininsert into

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論