采用Oracle ArchiveLog模式和非ArchiveLog模式對(duì)備份恢復(fù)的影響 2007-06-14 15:56:11
采用Oracle Archive Log模式和非Archive Log模式對(duì)備份恢復(fù)的影響
備份的目的在于,,當(dāng)系統(tǒng)或數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題時(shí),,能夠快速將數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)。對(duì)于Oracle數(shù)據(jù)庫(kù),,一般有兩種備份方式:“物理備份”和“邏輯備份”,。“物理備份”指的是以copy數(shù)據(jù)文件方式進(jìn)行備份,;“邏輯備份”指的是用export等方式將數(shù)據(jù)從數(shù)據(jù)庫(kù)中抽取出來(lái),。物理備份又可以分為冷備份和熱備份。以下是各種備份的說(shuō)明及前提條件,。 - Cold Backup(冷備份) 主要指在關(guān)閉數(shù)據(jù)庫(kù)的狀態(tài)下進(jìn)行的數(shù)據(jù)庫(kù)完全備份,,備份內(nèi)容包括所有數(shù)據(jù)文件、控制文件,、聯(lián)機(jī)日志文件,、ini文件。 - Hot Backup(熱備份) 指在數(shù)據(jù)庫(kù)處于運(yùn)行狀態(tài)下,,對(duì)數(shù)據(jù)文件和控制文件進(jìn)行備份,,要使用熱備份必須將數(shù)據(jù)庫(kù)運(yùn)行在(Archive Log)歸檔方式下。 - Export(邏輯備份)這是最簡(jiǎn)單的備份方法,,可按數(shù)據(jù)庫(kù)中某個(gè)表,、某個(gè)用戶或整個(gè)數(shù)據(jù)庫(kù)來(lái)導(dǎo)出,并且支持全部,、累計(jì),、增量三種方式。使用這種方法,,數(shù)據(jù)庫(kù)必須處于打開狀態(tài),,而且如果數(shù)據(jù)庫(kù)不是在restrict狀態(tài)將不能保證導(dǎo)出數(shù)據(jù)的一致性。 “物理備份”方式以相當(dāng)于copy數(shù)據(jù)文件的方式進(jìn)行備份,,恢復(fù)時(shí)可以快速以相當(dāng)于copy的方式將備份的數(shù)據(jù)copy回來(lái),,所以備份速度特別是恢復(fù)速度非常快,。 如果不采用Archive Log模式運(yùn)行Oracle數(shù)據(jù)庫(kù),,只有兩種可用的備份方法:冷備份或export邏輯備份。根據(jù)關(guān)鍵業(yè)務(wù)服務(wù)器的特點(diǎn),,停下數(shù)據(jù)庫(kù)進(jìn)行冷備份是根本不可能的,,因此如果不采用Archive Log,,只能進(jìn)行邏輯備份。 如果僅采用“邏輯備份”方式,,恢復(fù)時(shí)會(huì)有以下兩個(gè)主要問(wèn)題: 1. 無(wú)法恢復(fù)到最近時(shí)間點(diǎn)的數(shù)據(jù),。只能恢復(fù)到上一次export時(shí)的數(shù)據(jù)狀態(tài),當(dāng)天的數(shù)據(jù)將丟失,。Archive Log模式下的物理備份可以用數(shù)據(jù)文件備份及Archive Log備份,,將數(shù)據(jù)庫(kù)恢復(fù)到數(shù)據(jù)庫(kù)失敗前的時(shí)間點(diǎn),不會(huì)丟失數(shù)據(jù),。 2. 完成恢復(fù)可能需要很長(zhǎng)時(shí)間,?;謴?fù)只能用import方法進(jìn)行,,所以需要的時(shí)間包括: a. create database及所有的tablespace: 以每2分鐘初始化一個(gè)2G的數(shù)據(jù)文件來(lái)計(jì)算,建立一個(gè)400G的Oracle數(shù)據(jù)庫(kù)需要約6.7個(gè)小時(shí),。 b. import,。時(shí)間較難確定,但保守估計(jì)應(yīng)在10個(gè)小時(shí)以上(如果import過(guò)程中出現(xiàn)問(wèn)題,,恢復(fù)時(shí)間將延長(zhǎng)) 3. 恢復(fù)時(shí)步驟較多,,易出現(xiàn)人為故障。 由于 這些原因,,一般備份/恢復(fù)時(shí)都把export/import的方式做為輔助備份/恢復(fù)方式,,對(duì)一些重要的表進(jìn)行二級(jí)保護(hù)。這種備份方式也稱為“邏輯備份”方式,,當(dāng)某些重要的表被意外刪除時(shí)可進(jìn)行邏輯import恢復(fù),。 而對(duì)于整個(gè)數(shù)據(jù)庫(kù)的日常備份/恢復(fù),需要采用“物理備份”方式,,即以相當(dāng)于copy數(shù)據(jù)文件的方式進(jìn)行備份,,恢復(fù)時(shí)可以快速以相當(dāng)于copy的方式將備份的數(shù)據(jù)copy回來(lái)。一般物理備份/恢復(fù)都采用Oracle RMAN工具來(lái)進(jìn)行,。 下面是“邏輯備份”與“物理備份”在數(shù)據(jù)庫(kù)故障時(shí)的恢復(fù)比較: 1. Oracle邏輯錯(cuò)誤造成無(wú)法啟動(dòng) 邏輯恢復(fù): 重新create database及各tablespace,,import??苫謴?fù)到上次export的數(shù)據(jù) 物理恢復(fù): 將所有datafile copy回來(lái),,并利用archivelog將數(shù)據(jù)庫(kù)recover到故障前的狀態(tài) 2. 某一個(gè)datafile故障或丟失 邏輯恢復(fù): 重新create database及各tablespace,import,??苫謴?fù)到上次export的數(shù)據(jù) 物理恢復(fù): 將該datafile copy回來(lái) 3. 某一個(gè)tablespace故障 邏輯恢復(fù): 重新create database及各tablespace,import,??苫謴?fù)到上次export的數(shù)據(jù) 物理恢復(fù): 將該tablespace copy回來(lái) 4. 意外drop table 邏輯恢復(fù): Import 該table 物理恢復(fù): 將備份恢復(fù)到另一服務(wù)器上,,export該table,在原數(shù)據(jù)庫(kù)中import 5. 意外drop user 邏輯恢復(fù): Import 該user 物理恢復(fù): 將備份恢復(fù)到另一服務(wù)器上,,export該user,,在原數(shù)據(jù)庫(kù)中import 6. 意外drop tablespace 邏輯恢復(fù): 情況較復(fù)雜,恢復(fù)易造成數(shù)據(jù)庫(kù)表之間的參照完整性被破壞,。在此不做分析 物理恢復(fù): 情況較復(fù)雜,,恢復(fù)易造成數(shù)據(jù)庫(kù)表之間的參照完整性被破壞。在此不做分析 在進(jìn)行數(shù)據(jù)庫(kù)的恢復(fù)時(shí),,一定要了解Oracle數(shù)據(jù)庫(kù)的原理,,分析故障的原因,然后針對(duì)故障的情況進(jìn)行相應(yīng)的恢復(fù),。例如以下情況: - Oracle程序文件損壞,? - control file損壞? - Online redo log損壞,? - datafile損壞,? - archive log損壞? - table或其中數(shù)據(jù)被意外刪除,? 不同情況下需要采用的恢復(fù)手段都是不盡相同的,,需根據(jù)損壞的情況進(jìn)行相應(yīng)的恢復(fù)步驟。 |
|