帶您了解Oracle OS備份
Oracle OS備份是一種常見的備份方法,下面就為您介紹兩種Oracle OS備份的方式--冷備份(Cold backup)與熱備份(Hot backup)。
Oracle OS備份:
Oracle OS備份有兩類,冷備份(Cold backup)與熱備份(Hot backup),操作系統(tǒng)備份與以上的邏輯備份有本質(zhì)的區(qū)別。邏輯備份提取數(shù)據(jù)庫(kù)的數(shù)據(jù)內(nèi)容,而不備份物理數(shù)據(jù)塊。而操作系統(tǒng)備份則是拷貝整個(gè)的數(shù)據(jù)文件。
i、冷備份
在文件級(jí)備份開始前數(shù)據(jù)庫(kù)必須徹底關(guān)閉。關(guān)閉操作必須用帶有normal、immediate、transaction選項(xiàng)的shutdown來執(zhí)行。 數(shù)據(jù)庫(kù)使用的每個(gè)文件都被備份下來,這些文件包括:
☆所有數(shù)據(jù)文件
☆所有控制文件
☆所有聯(lián)機(jī)REDO LOG 文件
☆I(lǐng)NIT.ORA文件(可選)
作冷備份一般步驟是:
a.正常關(guān)閉要備份的實(shí)例(instance);
b.備份整個(gè)數(shù)據(jù)庫(kù)到一個(gè)目錄
c.啟動(dòng)數(shù)據(jù)庫(kù)
如
SVRMGRL>connect internal
SVRMGRL >shutdown immediate
SVRMGRL >! cp <file> <backup directory>
或
SVRMGRL >!tar cvf /dev/rmt/0 /u01/oradata/prod
SVRMGRL >startup
注意:如果利用腳本對(duì)數(shù)據(jù)庫(kù)進(jìn)行冷備份,必須對(duì)關(guān)閉數(shù)據(jù)庫(kù)的命令進(jìn)行邏輯檢查,如果發(fā)生關(guān)閉數(shù)據(jù)庫(kù)的命令不能正常執(zhí)行而導(dǎo)致數(shù)據(jù)庫(kù)沒有正常關(guān)閉,那么,所有的冷備份將回是無效的。
ii、熱備份
熱備份是當(dāng)數(shù)據(jù)庫(kù)打開并對(duì)用戶有效是的OS級(jí)的數(shù)據(jù)備份。熱備份只能用于ARCHIVELOG方式的數(shù)據(jù)庫(kù)。在數(shù)據(jù)文件備份之前,對(duì)應(yīng)的表空間必須通過使用ALTER TABLESPACE …… BEGIN BACKUP以備份方式放置。然后組成表空間的數(shù)據(jù)文件可以使用類似冷備份的操作系統(tǒng)命令進(jìn)行拷貝。在數(shù)據(jù)文件用操作系統(tǒng)命令拷貝后,應(yīng)使用ALTER TABLESPACE …… END BACKUP命令使表空間脫離熱備份方式。
熱備份沒有必要備份聯(lián)機(jī)日志,但必須是歸檔狀態(tài),在實(shí)例恢復(fù)的時(shí)候,可能需要用到歸檔日志。當(dāng)前聯(lián)機(jī)日志一定要保護(hù)好或是處于鏡相狀態(tài),當(dāng)前聯(lián)機(jī)日志的損壞,對(duì)于數(shù)據(jù)庫(kù)的損壞是巨大的,只能以數(shù)據(jù)的丟失來進(jìn)行數(shù)據(jù)庫(kù)的恢復(fù)工作。
對(duì)于臨時(shí)表空間,存放的是臨時(shí)信息,在熱備份是也可以考慮不用備份,如果臨時(shí)文件發(fā)生故障,可以刪除該數(shù)據(jù)文件與表空間,重建一個(gè)臨時(shí)表空間。熱備份的優(yōu)點(diǎn)是顯而易見的
---- a.可在表空間或數(shù)據(jù)文件級(jí)備份,備份時(shí)間短。
---- b.備份時(shí)數(shù)據(jù)庫(kù)仍可使用。
---- c.可達(dá)到秒級(jí)恢復(fù)(恢復(fù)到某一時(shí)間點(diǎn)上)。
---- d.可對(duì)幾乎所有數(shù)據(jù)庫(kù)實(shí)體作恢復(fù)。
---- e.恢復(fù)是快速的,在大多數(shù)情況下在數(shù)據(jù)庫(kù)仍工作時(shí)恢復(fù)。
操作系統(tǒng)作熱備份的一般步驟為:
①連接數(shù)據(jù)庫(kù) SVRMGRL>connect internal;
②將需要備份的表空間(如User)設(shè)置為備份方式 SVRMGRL>Alter tablespace User begin backup;
③拷貝數(shù)據(jù)文件 SVRMGRL>!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora Or $cp cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora
④在數(shù)據(jù)文件拷貝完成后,將表空間拖體備份方式 SVRMGRL>Alter tablespace User end backup;
⑤對(duì)所有需要備份的表空間重復(fù)2,3,4
⑥使用如下的命令備份控制文件ALTER DATABSE …… BACKUP CONTROLFILE
如備份成二進(jìn)制文件 alter database backup controlfile to ‘new fielname’;
備份成文本文件 alter database backup controlfile to trace;
因?yàn)闊醾浞莸臅r(shí)候,用戶還在操作數(shù)據(jù)庫(kù),所以,最好是每個(gè)表空間處于備份狀態(tài)的時(shí)間最短,這樣就要求一個(gè)表空間一個(gè)表空間的備份,不要一起使表空間處于備份狀態(tài)而同時(shí)拷貝數(shù)據(jù)文件。
注意:如果在熱備份的時(shí)候如果數(shù)據(jù)庫(kù)中斷(如斷電),那么在重新啟動(dòng)數(shù)據(jù)庫(kù)的時(shí)候,數(shù)據(jù)庫(kù)將提示有數(shù)據(jù)文件需要恢復(fù),你需要把正在斷電時(shí)候的處于備份狀態(tài)的數(shù)據(jù)文件通過ALTER TABLESPACE …… END BACKUP結(jié)束備份方式。具體哪個(gè)數(shù)據(jù)文件或表空間處于備份狀態(tài),可以通過v$backup與v$datafile來獲得。
【編輯推薦】