Oracle備份和恢復(fù)簡史

責(zé)任編輯:editor005

作者:David Fitzjarrell

2015-09-01 14:44:02

摘自:TechTarget中國

這些年來,Oracle數(shù)據(jù)庫備份和恢復(fù)方式已經(jīng)發(fā)生了重大變化,特別是在Recovery Manager(RMAN)功能有了進(jìn)一步改善之后。

這些年來,Oracle數(shù)據(jù)庫備份和恢復(fù)方式已經(jīng)發(fā)生了重大變化,特別是在Recovery Manager(RMAN)功能有了進(jìn)一步改善之后。那么接下來,就讓我們來回顧下,在沒有RMAN之前,以及有了RMAN之后,DBA如何備份數(shù)據(jù),以及RMAN如何改善這一過程。

回到很久之前的Oracle 5,那時候的備份是這么做的:關(guān)閉數(shù)據(jù)庫,復(fù)制所有的相關(guān)文件,然后再次啟動數(shù)據(jù)庫。這種備份方式屬于冷備份,因為數(shù)據(jù)庫在備份發(fā)生時是不運行的。這是能夠確保一致性的備份,一個DBA可以使用這個備份進(jìn)行回滾,通常不會有任何問題,,但恢復(fù)卻是一個苦差事,而且只能在聯(lián)機恢復(fù)日志可用時才能進(jìn)行。

Oracle 6的發(fā)布,引發(fā)了數(shù)據(jù)庫備份的下一次進(jìn)化。它的恢復(fù)操作會改變向量,回滾段和表空間。這種備份是熱備份,在線備份也變得可用。使用Oracle 6, DBA可以執(zhí)行:

ALTER TABLESPACE BEGIN BACKUP;

ALTER TABLESPACE END BACKUP;

復(fù)制與指定表空間相關(guān)的文件,Oracle可以重建和恢復(fù)表空間。當(dāng)然archivelog也需要復(fù)制,為了“熱”備份整個數(shù)據(jù)庫,上面所示的兩個命令需要在數(shù)據(jù)庫每個表空間中運行。當(dāng)然這是數(shù)據(jù)庫相比之前版本來說的一個優(yōu)勢,現(xiàn)在數(shù)據(jù)庫可以繼續(xù)運行,而與此同時備份也在進(jìn)行。不過,這是一個手動過程,需要DBA編寫腳本。整個數(shù)據(jù)庫必須重建和恢復(fù),表空間的時間點恢復(fù)并不可用。

進(jìn)入Oracle 8,備份和恢復(fù)得到了進(jìn)一步改進(jìn)。表空間時間點恢復(fù),增量備份,并行備份和恢復(fù)都是可用的。這也是首次引入Recovery Manager概念的版本,但由于處于早期階段,因此其帶來的問題甚至比解決的還有多,所以沒有其并未被廣泛采用。

Oracle 8提供的兩個較大的改進(jìn)是表空間時間點恢復(fù)和增量備份,這兩個功能是緊密相關(guān)的。正是因為增量備份功能的存在,時間點恢復(fù)才能夠使用。以后再也沒有必要一次次的執(zhí)行完整備份。在一個星期內(nèi)執(zhí)行一次完整備份就夠了,用增量備份(自上次完全備份后保存所做的更改)來完成之前的完整備份的功能就足夠了。的確,現(xiàn)在需要使用兩種備份來完全恢復(fù)和重建一個數(shù)據(jù)庫,但增量備份文件比完整備份要小得多,這使得Oracle數(shù)據(jù)庫可以被恢復(fù)至任何執(zhí)行過增量備份的時間點。不僅可以恢復(fù)和重建數(shù)據(jù)庫,也可以克隆數(shù)據(jù)庫在某一時間點的內(nèi)容(盡管這一過程在當(dāng)時來說比現(xiàn)在更復(fù)雜)。要記住,RMAN并不是非??煽浚訢BA不準(zhǔn)備放棄他們的備份腳本以支持這種新的備份和恢復(fù)技術(shù)。

Oracle 9迎來了一個更可靠的Recovery Manager,更多的DBA愿意使用RMAN,測試其功能。它提供給DBA的用于創(chuàng)建完整和增量備份的接口更為可靠,使用其恢復(fù)和重建一個數(shù)據(jù)庫也更為簡單,使用以下命令即可:

RESTORE DATABASE;

RECOVER DATABASE;

from the RMAN>prompt.

Oracle 10和11繼續(xù)改進(jìn)RMAN,提高其可靠性,前者采用自動存儲管理(ASM),將其集成到RMAN中,更好地管理數(shù)據(jù)庫空間,后者提供了從當(dāng)前目標(biāo)數(shù)據(jù)庫備份或一個運行中的目標(biāo)數(shù)據(jù)庫創(chuàng)建克隆的功能。系統(tǒng)網(wǎng)絡(luò)帶寬支持這樣的操作,進(jìn)行最新的克隆是完全可能的。(當(dāng)然,克隆將永遠(yuǎn)不會完全同步運作中的數(shù)據(jù)庫,相對于最近的事務(wù),克隆需要保持一致性,這時候恢復(fù)將會停止,但克隆運行中的數(shù)據(jù)庫將允許近期事務(wù)在克隆開始時繼續(xù)運行。)所有這一切是可以使用RMAN提供的接口來進(jìn)行,可以從本地O/ S調(diào)度器執(zhí)行腳本。Oracle12延伸了這些改進(jìn),讓RMAN可以從一個RMAN備份集中恢復(fù)和重建單個表,這是一個曾經(jīng)在老版本中被歸入exp和imp范疇的任務(wù),在9i R2以后的版本中,其被歸入expdp和impdp范疇。

“時間不等人。”這句話用在Oracle為了提高數(shù)據(jù)庫備份,恢復(fù)和重建的能力,而給數(shù)據(jù)庫備份和恢復(fù)帶來的變化上再合適不過。以往那些執(zhí)行手動腳本,關(guān)閉數(shù)據(jù)庫創(chuàng)建一個備份,數(shù)據(jù)庫運行中必須顯式地備份每個單獨的表空間的日子一去不復(fù)返了。RMAN現(xiàn)在是一個“日常”用字(如果你的日常工作是運行Oracle數(shù)據(jù)庫上的數(shù)據(jù)中心),手動腳本等其他任何類型的備份不再是必要的。RMAN很容易實現(xiàn)可靠的備份,DBA已將該技術(shù)視為理所當(dāng)然。但是,正如這里介紹的,從最早版本Oracle開始,備份和恢復(fù)已經(jīng)走了很長的路,DBA的世界里應(yīng)該對這樣的變化感到欣喜,盡管他們可能還沒意識到。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號