好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Oracle數據庫不同損壞級別的恢復教程

Oracle數據庫不同損壞級別的恢復教程

熱門標簽:400電話是不是免費申請 海南400電話哪里辦理 分布式呼叫中心 圖像地圖標注 貴陽電話外呼系統哪家好 濟南地圖標注公司 呼倫貝爾智能手機地圖標注 安陽外呼系統免費 南寧人工智能電銷機器人費用

前言

在 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';
 }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Oracle數據塊損壞之10231內部事件不完全恢復
  • [Oracle] 解析在沒有備份的情況下undo損壞怎么辦
  • ORACLE檢查找出損壞索引(Corrupt Indexes)的方法詳解
  • Oracle數據庫的備份與恢復
  • Oracle誤刪除表數據后的數據恢復詳解
  • oracle冷備份恢復和oracle異機恢復使用方法
  • oracle如何恢復被覆蓋的存儲過程
  • Oracle數據庫數據丟失恢復的幾種方法總結
  • oracle drop table(表)數據恢復方法
  • ORACLE 數據庫RMAN備份恢復

標簽:合肥 涼山 遼源 許昌 滁州 郴州 焦作 南充

巨人網絡通訊聲明:本文標題《Oracle數據庫不同損壞級別的恢復教程》,本文關鍵詞  Oracle,數據庫,不同,損壞,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle數據庫不同損壞級別的恢復教程》相關的同類信息!
  • 本頁收集關于Oracle數據庫不同損壞級別的恢復教程的相關信息資訊供網民參考!
  • 推薦文章