Oracle-11g

使用 RMAN 恢復 Oracle 數據庫

  • August 26, 2014

我是一名從事 DBA 工作的應用程序開發人員。我必須在我們的測試伺服器上恢復一個 oracle 數據庫。使用 RMAN 備份數據庫,並且在此伺服器上完成的最後一次數據庫還原是在 2011 年。RMAN 備份每天都在執行。無論如何,我想恢復測試數據庫以匹配生產生產數據庫。我可以從生產伺服器複製所需的數據文件和控製文件,並將其放在測試伺服器上放置備份文件的確切位置,或者如何解決這個問題。我想執行時間點恢復。我不想破壞生產數據庫。由於生產伺服器每天都在備份數據庫,我想我會複製前天的副本並將其放在測試伺服器上,並在進行時間點恢復時將路徑名提供給 RMAN.. 請建議我該怎麼做..這是我用來恢復的程式碼,如果可以,請告訴我。謝謝

SET NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS" 
SET ORACLE_SID=
rman target / nocatalog 
shutdown immediate; 
startup mount; 
run 
{ 
 SET UNTIL TIME "TO_DATE('set to whatever time you want to recover','DD-MON-YYYY  HH24:MI:SS')"; 
 restore database; 
 recover database; 
 alter database open resetlogs;
}

您不希望您的測試數據庫保留與生產數據庫相同的內部 ID 號。因此最好使用 RMAN 的命令 DUPLICATE,因為它設置了不同的 id(以及新的數據庫名稱)。此命令專門設計用於執行您需要的操作。

在目前控製文件可用時恢復和恢復數據庫:

  1. 連接到目標數據庫和(可選)恢復目錄數據庫後,確保數據庫已安裝。
STARTUP MOUNT
  1. 執行以下操作: 如果未配置自動通道,則手動分配一個或多個通道。

執行SHOW ALL以查看目前配置。

使用命令恢復數據庫RESTORE,使用命令恢復數據庫RECOVER

此範例使用自動通道執行恢復並跳過只讀歷史表空間:

RESTORE DATABASE;

RECOVER DATABASE

# optionally, delete logs restored for recovery and limit disk space used
DELETE ARCHIVELOG MAXSIZE 1M 
SKIP TABLESPACE history;  # optionally, skip the recovery of some tablespaces
  1. 檢查輸出以查看恢復是否成功。如果是這樣,請打開數據庫:
ALTER DATABASE OPEN;

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