Oracle資料庫的後備和恢復

2021-09-30 07:42:47 字數 2503 閱讀 1207

當我們使用乙個資料庫時,總希望資料庫的內容是可靠的、正確的,但由於計算機系統的故障(硬體故障、軟體故障、網路故障、程序故障和系統故障)影響資料庫系統的操作,影響資料庫中資料的正確性,甚至破壞資料庫,使資料庫中全部或部分資料丟失。因此當發生上述故障後,希望能重新建立乙個完整的資料庫,該處理稱為資料庫恢復。恢復子系統是資料庫管理系統的乙個重要組成部分。恢復處理隨所發生的故障型別所影響的結構而變化。

一、恢復資料庫所使用的結構

oracle資料庫使用幾種結構對可能故障來保護資料:資料庫後備、日誌、回滾段和控制檔案。

資料庫後備是由構成oracle資料庫的物理檔案的作業系統後備所組成。當介質故障時進行資料庫恢復,利用後備檔案恢復毀壞的資料檔案或控制檔案。

回滾段用於儲存正在進行的事務(為未提交的事務)所修改值的老值,該資訊在資料庫恢復過程中用於撤消任何非提交的修改。

控制檔案,一般用於儲存資料庫的物理結構的狀態。控制檔案中某些狀態資訊在例項恢復和介質恢復期間用於引導oracle。

oracle後台程序dbwr(資料庫寫)將sga中所有被修改的資料庫緩衝區(包含提交和未提交的)寫入到資料檔案,這樣的事件稱為出現乙個檢查點。因下列原因實現檢查點:

◆檢查點確保將記憶體中經常改變的資料段塊每隔一定時間寫入到資料檔案。由於dbwr使用最近最少使用演算法,經常修改的資料段塊從不會作為最近最少使用塊,如果檢查點不出現,它從不會寫入磁碟。

◆由於直至檢查點時所有的資料庫修改已記錄到資料檔案,先於檢查點的日誌項在例項恢復時不再需要應用於資料檔案,所以檢查點可加快例項恢復。

檢查點可對資料庫的全部資料檔案出現(稱為資料庫檢查點),也可對指定的資料檔案出現。下面說明一下什麼時候出現檢查點及出現什麼情況:

◆在每乙個日誌開關處自動地出現一資料庫檢查點。如果前乙個資料庫檢查點正在處理,由日誌開關實施的檢查點優於當前檢查點。

◆初始化引數據log-checkpoint-interval設定所實施的資料庫檢查點,當預定的日誌塊數被填滿後(自最後乙個資料庫檢查點以來),實施一資料庫檢查點。另乙個引數log-checkpoint-timeout可設定自上乙個資料庫檢查點開始之後指定秒數後實施一資料庫檢查點。這種選擇對使用非常大的日誌檔案時有用,它在日誌開頭之間增加檢查點。由初始化引數所啟動的資料庫檢查點只有在前乙個檢查點完成後才能啟動。

◆當dba以正常或立即方式關閉一例項時,oracle在例項關閉之前實施一資料庫檢查點,該檢查點壓倒任何執行檢查點。

◆dba可要求實施一資料庫檢查點,該檢查點壓倒任何執行檢查點。

三、歸檔日誌

如果資料庫在archivelog方式下執行,dba可手工歸檔填滿的不活動的日誌檔案組,不管自動歸檔是可以還是不可以。

四、資料庫後備

不管為oracle資料庫設計成什麼樣的後備或恢復模式,資料庫資料檔案、日誌檔案和控制檔案的作業系統後備是絕對需要的,它是保護介質故障的策略部分。作業系統後備有完全後備和部分後備:

◆完全後備

◆部分後備

部分後備為除完全後備外的任何作業系統後備,可在資料庫開啟或關閉下進行。如單個表空間中全部資料檔案後備、單個資料檔案後備和控制檔案後備。部分後備僅對在archivelog方式下執行資料庫有用,因為存在的歸檔日誌,資料檔案可由部分後備恢復。在恢復過程中與資料庫其它部分一致。

五、資料庫恢復

◆例項故障的恢復

(2)回滾未提交的事務,按步1重新生成回滾段所指定的操作。

(3)釋放在故障時正在處理事務所持有的資源。

(4)解決在故障時正經歷一階段提交的任何懸而未決的分布事務。

◆介質故障的恢復

介質故障是當乙個檔案、乙個檔案的部分或一磁碟不能讀或不能寫時出現的故障。介質故障的恢復有兩種形式,決定於資料庫執行的歸檔方式。

不管哪種形式,介質故障的恢復總是將整個資料庫恢復到故障之前的乙個事務一致狀態。如果資料庫是在archivelog方式執行,可有不同型別的介質恢復:完全介質恢復和不完全介質恢復。

完全介質恢復可恢復全部丟失的修改。僅當所有必要的日誌可用時才可能。有不同型別的完全介質恢復可使用,其決定於毀壞檔案和資料庫的可用性。例:

◆關閉資料庫的恢復。當資料庫可被裝配卻是關閉的,完全不能正常使用,此時可進行全部的或單個毀壞資料檔案的完全介質恢復。

◆使用後備的控制檔案的完全介質恢復。當控制檔案所有拷貝由於磁碟故障而受損時,可進行介質恢復而不丟失資料。

不完全介質恢復是在完全介質恢復不可能或不要求時進行的介質恢復。重構受損的資料庫,使其恢復介質故障前或使用者出錯之前的乙個事務一致性狀態。不完全介質恢復有不同型別的使用,決定於需要不完全介質恢復的情況,有下列型別:基於撤消、基於時間和基於修改的不完全恢復。

基於時間和基於修改的恢復:如果dba希望恢復到過去的某個指定點,不完全介質恢復地理想的。可在下列情況下使用:

◆當使用者意外地刪除一表,並注意到錯誤提交的估計時間,dba可立即關閉資料庫,恢復它到使用者錯誤之前時刻。

在這兩種情況下,不完全介質恢復的終點可由時間點或系統修改號(scn)來指定。

oracle資料庫分割槽的備份和恢復

1 檢視建立表空間時指定的資料檔案 show parameter db create file 2 設定表空間位址 alter system set db create file dest opt oracle product oradata orcl 3 建立6個表空間,3個給表分割槽,三給分割槽...

Oracle 資料庫備份恢復

用資料庫檔案恢復資料庫 1.開啟伺服器終端 2.切換到根目錄下 cd 3.切換到oracle 使用者下 su oracle 可能需要密碼 密碼 oracle 4.以系統管理員身份登入資料庫 sqlplus as sysdba 5.建立資料庫備份檔案對映路徑 可使用 create directory ...

Oracle資料庫恢復案例

當我們在使用oracle資料庫時,突然斷電,造成很多問題,致使舊資料丟失,影響了資料的正確性,破壞了資料庫。此時,使用者急切需求恢復資料。本文以此為例,講述資料庫資料恢復。一 案例描述 資料庫因突然斷電,資料庫啟庫報 system01.dbf zxfg 使用者下的資料。二 恢復流程 1 資料庫的故障...