Oracle資料庫不同損壞級別的恢復詳解
墨墨導讀:在 DBA 的日常工作中不可避免存在著資料庫的損壞,本文將主要介紹 Oracle 資料庫遇到不同損壞級別下的應該採用的恢復方法,供讀者在遇到此類情景時,能的找到適合自己的恢復方法,提高工作效率。
資料塊損壞的恢復
當資料檔案中僅有少量的資料塊發生了介質損壞時,我們可以利用RMAN對其進行資料塊一級的恢復。資料塊級的區域性恢復可以大大縮短恢復時間,甚至縮短到其他恢復方式的千分之幾。此外,在資料塊存在損壞而進行的恢復中,系統可以處於執行狀態,這個資料檔案也可以處於聯機應用狀態,無須將其設定為離線,保持應用執行狀態。
1)連線RMAN環境,並以 SYSDBA(SYSOPER) 身份連線資料庫:
$rman target /
2)執行下面的資料塊修復命令進行資料塊的修復:
rman>blockrecover datafile 3 block 2,150,152;
現在資料塊得以恢復,系統繼續執行。
資料檔案損壞的恢復
第一步:設定損壞的資料檔案離線
SQL>alter database datafile 4 offline;
第二步:由RMAN裝載資料檔案
RMAN>restore datafile 4;
第三步:對損壞的資料檔案進行恢復
RMAN>recover datafile 4;
第四步:設定已恢復資料檔案聯機
RMAN>sql “alter database datafile 4 online”;
第五步:檢視資料檔案的可用性
SQL>select name,enabled,status from v$datafile;
至此,一個非系統表空間的資料檔案恢復過程完成。
表空間損壞的恢復
當然資料庫恢復方法不僅一個,管理員也可以按照表空間恢復的方法進行恢復操作。還是上面的案例,如果發生了失敗,現在按照表空間損壞情況下的恢復方法進行恢復。
下面用備份來恢復表空間users中的全部資料檔案:
第一步:將表空間離線
SQL> alter tablespace users offline;
第二步:裝載表空間
RMAN>restore tablespace users;
第三步:恢復表空間
RMAN>recover tablespace users;
第四步:將表空間聯機
RMAN>sql “alter tablespace users online”;
第五步:檢視資料檔案的可用性
SQL>select name,enabled,status from v$datafile
系統表空間的恢復
如果是還原表空間或者系統表空間損壞,則資料庫系統不能執行,資料庫一定不能處於開啟狀態,在RMAN環境下連線Oracle,注意,此時的連線並不是連線到已經開啟的資料庫,而是連線到處於裝載狀態下的資料庫:
第一步:連線RMAN
$rman target /
第二步:裝載表空間
RMAN>restore tablespace system;
第三步:恢復表空間
RMAN>recover tablespace system;
第四步:開啟資料庫
SQL>alter database open;
資料庫的崩潰恢復
一種全資料庫恢復方法,用於資料庫徹底崩潰,不可以進行資料庫區域性恢復操作的情況。這種方法很簡單---裝載回資料庫的一個完整備份集進行恢復操作。雖然方法是簡單的,但代價是龐大的----時間可能會很長! 首先需要啟動資料庫例項。在控制檔案完好的情況下,啟動到mount狀態是沒有問題的,如果控制檔案損壞,則只能啟動到nomount狀態。在本例中,資料庫可以啟動到mount狀態:
第一步:啟動例項
SQL>startup mount
第二步:進入到RMAN環境下:
$rman target /
第三步:裝載資料庫備份
RMAN>restore database;
第四步:執行下面的命令進行資料庫的完全恢復:
RMAN>recover database;
第五步:開啟資料庫
RMAN>alter database open;
控制檔案損壞的恢復
由於某種原因,例如介質損壞導致所有控制檔案都不可用時,管理員可以使用RMAN的控制檔案自動備份,對控制檔案進行恢復。
為了描述的方便,這裡我們假設在一套歸檔方式執行的資料庫中,所有控制檔案由於介質損壞導致不可用。其他資料庫檔案,包括資料檔案、引數檔案(SPFILE)、歸檔日誌檔案、聯機重做日誌檔案等均完好無損。 我們可以按照下面的步驟進行恢復。由於資料庫控制檔案損壞,因此資料庫這時只能處於離線狀態。
第一步:啟動資料庫到nomount狀態:
SQL>startup nomount
第二步:在RMAN環境中,註冊資料庫ID(DBID)
$rman target /rman>set DBID=1195474494
第三步:從資料庫備份集中裝載控制檔案備份
RMAN>restore controlfile from autobackup
第四步:將資料庫開啟到mount狀態:
RMAN>alter database mount
第五步:用RMAN備份恢復資料庫
RMAN>recover database;
第六步:將資料庫例項開啟,但需要進行日誌的重置(resetlogs):
RMAN>alter database open resetlogs;
由於資料庫以resetlogs方式開啟,雖然本系統資料並未丟失,但由於所有日誌檔案已被重置,因此,需要進行完全資料庫備份。 如果控制檔案損壞,且伴著其他資料檔案等的損壞,則按照本節介紹的控制檔案恢復,加上資料庫的崩潰恢復,可以實現資料庫的完全恢復(或不完全恢復)。
日誌檔案損壞的恢復
由於資料庫日誌可以採用多成員機制,這種方式保證在單個日誌檔案損壞下的系統連續執行。即便一個日誌組的所有成員都已經損壞,如果是當前日誌組,則資料丟失、資料庫執行不完全恢復是必然的選擇。如果不是當前日誌組,可能根本無須修復,直接將日誌組刪除,再建立新的日誌組就可以了。
第一步:進行資料庫的不完全恢復
SQL>recover database until cancel;
第二步:按照重置日誌的方式開啟資料庫
SQL>alter database open resetlogs;
資料庫得到不完全恢復。當然,上述過程也可以在RMAN中完成。
從指定備份集中恢復
RMAN> run{ set until scn=1645604; --執行不完全恢復 restore database from tag='TAG20110702T231137'; --指定備份集的tag值,在list backup of database中可以查到 recover database; sql 'alter database open resetlogs'; }
出處:頭條號老王談運維
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2648138/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 【伺服器資料恢復】IBM儲存伺服器硬碟壞道離線、oracle資料庫損壞的資料恢復伺服器資料恢復IBM硬碟Oracle資料庫
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- 伺服器Oracle資料庫損壞修復伺服器Oracle資料庫
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- u盤檔案損壞怎麼恢復資料 u盤恢復損壞資料的有效方法
- 資料底層損壞的恢復方法—拼碎片恢復資料
- 【LINUX】Oracle資料庫 linux磁碟頭資料損壞修復LinuxOracle資料庫
- oracle資料庫損壞的恢復過程-基於IBM伺服器儲存Oracle資料庫IBM伺服器
- Oracle asm磁碟損壞異常恢復OracleASM
- 【資料庫資料恢復】Oracle資料庫檔案出現壞塊報錯的資料恢復案例資料庫資料恢復Oracle
- 執行在容器中Postgres資料庫資料損壞後如何恢復?資料庫
- 學習這篇Oracle資料庫檔案壞塊損壞的恢復方法,擴充你的知識面Oracle資料庫
- 資料恢復記錄:硬碟分割槽損壞修復SqlServer資料庫過程資料恢復硬碟SQLServer資料庫
- 【北亞資料恢復】誤操作分割槽損壞導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫
- u盤檔案損壞怎麼恢復資料 u盤損壞無法讀取怎麼恢復資料
- 隨身碟顆粒損壞資料恢復資料恢復
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 如何恢復行動硬碟損壞的資料?先找原因後解決硬碟
- raid5癱瘓導致資料庫損壞的恢復過程AI資料庫
- 成功恢復某公司伺服器故障導致的資料庫損壞伺服器資料庫
- 資料恢復工具Recoverit使用教程:如何修復損壞的影片資料恢復
- 【伺服器資料恢復】某品牌ProLiant伺服器raid癱瘓資料庫檔案損壞的資料恢復伺服器資料恢復AI資料庫
- SQLite資料庫損壞及其修復探究SQLite資料庫
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】SQL SERVER資料庫MDF (NDF)或LDF損壞問題如何解決?資料庫資料恢復SQLServer
- InterBase資料庫檔案損壞的修復方法資料庫
- 【儲存資料恢復】IBM儲存檔案NTFS系統損壞的資料恢復案例資料恢復IBM
- 【vSAN資料恢復案例】異常斷電導致vSAN底層資料損壞的資料恢復資料恢復
- 杭州資料恢復之雜牌U優盤損壞電腦不識別拆解晶片怎麼恢復資料資料恢復晶片
- 【北亞資料恢復】異常斷電導致linux伺服器無法啟動,資料庫損壞的資料恢復資料恢復Linux伺服器資料庫
- 電腦進水導致硬碟損壞資料恢復硬碟資料恢復
- 【資料庫資料恢復】ASM磁碟組掉線的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【伺服器資料恢復】伺服器reiserfs檔案系統損壞的資料恢復案例伺服器資料恢復
- PostgreSQL 恢復大法 - 恢復部分資料庫、跳過壞塊、修復無法啟動的資料庫SQL資料庫
- Oracle資料庫恢復之resetlogsOracle資料庫