oracle熱備份就是一般通常意義上常說的hot backup,熱備份是將表空間置于備份模式,且將相關(guān)的數(shù)據(jù)文件備份到其他位置(磁盤或者磁帶)。用戶不必知道正在運(yùn)行的是什么,并像往常一樣運(yùn)行(也許速度會有小的降低,但不會有太大的影響。熱備份比冷備份要復(fù)雜,但從長遠(yuǎn)來看,這個差異通常是非常值得的
熱備份與冷備份的區(qū)別
熱備份與冷備份的區(qū)別是熱備份允許在用戶訪問數(shù)據(jù)庫的同時備份數(shù)據(jù)庫,這意味著數(shù)據(jù)庫必須要處于歸檔(archivelog)模式 ,至少在備份的時候要在歸檔模式。熱備份與冷備份另外一個主要區(qū)別是:熱備份需要用戶以sysdba或者sysoper權(quán)限登陸服務(wù)器,而不是以root訪問權(quán)限登陸。這意味著要么必須信任執(zhí)行備份的用戶,要么必須自己寫腳本進(jìn)行備份。
將表空間置于備份模式
在進(jìn)行熱備份時,必須使數(shù)據(jù)庫或者表空間處于熱備份模式,這會造成表空間備份的不一致,但是當(dāng)應(yīng)用重做日志和歸檔日志時,它能重建一致,并且用戶可以繼續(xù)使用應(yīng)用程序或者查詢、更新信息。這也表明將看到大量混亂的日志切換,在備份數(shù)據(jù)庫過程中,會產(chǎn)生相當(dāng)多的歸檔日志。為什么會產(chǎn)生混亂的日志切換呢,因為當(dāng)數(shù)據(jù)庫處于備份模式時,一般寫入表空間中(這些表空間處在備份模式并且不是直接寫入的)的信息在表空間退出熱備份模式之后,必須在某處使用,很自然的,這就變成了重做日志和歸檔重做日志(這依賴于處在備份模式的時間長短)。這就是為什么必須處于歸檔模式的原因。
這些都表明作為一個數(shù)據(jù)庫管理員要有兩件事處理。第一,為了減少擴(kuò)展日志所需的空間,必須考慮限制處在備份模式中的表空間的總時間或者把數(shù)據(jù)庫做為一個整體;第二、需要在歸檔日志目錄中建立足夠的空間來解決額外的空間。
縮短備份的時間
縮短數(shù)據(jù)庫在備份模式的時間,意味著不僅限制了增加備份模式的開銷時間同時也限制了擴(kuò)展空間所須的大小,縮短備份時間有很多 種方法,其中一個常用的有效方法就是利用類似只讀表空間的oracle特性。如果表空間中的對象的數(shù)據(jù)從來都不會更改(如查詢表)那么就把表空間設(shè)為只讀。很多時候,我們出于習(xí)慣將這些表放如規(guī)則達(dá)到表空間。
估算空間
通常必須估算在磁盤上臨時存儲(在寫到磁盤和從磁盤刪除之間)的歸檔日志所需的存儲空間,為此,首先需要查看警告日志來決定數(shù)據(jù)庫日志平均切換的頻率(事實上,為了安全起見,我以最大負(fù)載為單位)接著,查看備份歸檔日志的頻率。這樣就能得到在某時間短內(nèi)日志切換的總數(shù)量。
如果打算不止一次備份數(shù)據(jù)庫,就得為它創(chuàng)建腳本。在熱備份模式下,備份數(shù)據(jù)庫意味著數(shù)據(jù)庫已經(jīng)打開,這樣就可以存儲熱備份腳本到數(shù)據(jù)庫中。這個腳本可以為您的環(huán)境定制,并只能運(yùn)行在unix、linux或者模擬unix的系統(tǒng)上面。但是要牢記,因為熱備份腳本可以被所有擁有sysdba權(quán)限的用戶執(zhí)行,所以要保護(hù)該腳本的執(zhí)行,