Oracle

Oracle 數據庫恢復

  • August 7, 2013

在開始之前,我只想提一下,我不是 DBA,我是一名程序員/開發人員,也碰巧照顧數據庫。所以如果我說錯了,我提前道歉。

我們最近經歷了一次大規模的全市電力浪湧,導致我們的數據庫伺服器死亡。我們在伺服器上執行了多個數據庫(RHEL6 - Oracle 11gr2)。我使用 rman 和命令“備份數據庫加上歸檔日誌刪除輸入”備份所有數據,然後對一個特定模式進行 impdp 轉儲,以便我們可以在夜間將其導入到我們的測試環境中。在我們的伺服器被破壞後,我們唯一可以從硬碟驅動器恢復的是包含大量 bkp 文件的備份集文件夾。就是這樣。我沒有控製文件或數據庫的 DBID。但是,我確實有一個 3 天前的數據轉儲

有什麼辦法可以將數據庫恢復到新主機上?

問候

亞歷克斯

就在這裡。使用相同的文件結構將文件傳輸到新伺服器(如果有的話)。接下來使用 dbname 和 control_file 參數創建一個 init.ora 文件。在 nomount 中使用該 init.ora 啟動實例。

如果您碰巧在數據庫的 $ORACLE_HOME/dbs/ 中有快照控製文件,請啟動 rman:

rman target=/
restore controlfile from '/where/is/it/o1_mf_ncsnf_TAG20130803T022352_8zrqqfc4_.bkp';
alter database mount;
restore database;
recover database;
alter database open;

沒有控製文件,它有點棘手,但仍然可能。一個很好的解釋是如何在沒有任何現有控製文件的情況下恢復 rman 備份

提示:始終通過創建目前控製文件的副本來結束備份:

BACKUP AS COPY CURRENT CONTROLFILE FORMAT '/tmp/controlfile_%Y%M%D.ctl';

最好在比 /tmp 更智能的位置。它不僅包含您的數據庫佈局,還包含您最近和最有價值的備份的管理。

引用自:https://dba.stackexchange.com/questions/47587