Oracle

自動化 - 使用備份控製文件恢復數據庫

  • July 7, 2016

我正在嘗試自動將數據庫從一個環境定期複製到另一個環境中,從而更改數據庫名稱。通過在源系統上進行開始/結束備份、複製儲存共享並將它們複製到新位置,我已經手動完成了很多次。我的掛斷來自自動化恢復部分。重新創建控製文件後,我執行以下命令(從控製文件的備份生成以進行跟踪):

recover database using backup controfile

問題是這個命令有一個提示。由於我執行此過程的方式,所需的存檔日誌都存在,因此只需鍵入 AUTO。然後等待它完成後,執行alter database open resetlogs.

我的問題是,我怎樣才能自動化這最後一塊?我有一些想法,但我不喜歡其中任何一個。希望我缺少一些明顯的東西。

更新:我嘗試過使用CONTINUE DEFAULT語法,但它似乎不起作用。

SQL> RECOVER DATABASE UNTIL TIME '2015-10-20:13:54:16' USING BACKUP CONTROLFILE CONTINUE DEFAULT;
ORA-00274: illegal recovery option CONTINUE


SQL> RECOVER DATABASE UNTIL TIME '2015-10-20:13:54:16' CONTINUE DEFAULT USING BACKUP CONTROLFILE;
ORA-00274: illegal recovery option CONTINUE

使用AUTOMATIC.

RECOVER AUTOMATIC DATABASE UNTIL TIME '2015-10-20:13:54:16' USING BACKUP CONTROLFILE;

CONTINUE [DEFAULT]是不同的分支,不能與UNTILand等子句一起使用USING BACKUP CONTROLFILE

Control file created.

SQL> recover automatic database until change 473319 using backup controlfile;
Media recovery complete.
SQL> alter database open resetlogs;

Database altered.

SQL> select resetlogs_change# from v$database;

RESETLOGS_CHANGE#
-----------------
          473320

添加CONTINUE DEFAULT.

如果未指定其他日誌文件,則使用 Oracle 數據庫自動生成的重做日誌文件繼續恢復。這等效於指定 AUTOMATIC,只是 Oracle 數據庫不提示輸入文件名。

文件連結在這裡

顯然,其他解決方案將涉及腳本expect或類似的東西。

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