失去數據文件後無法打開數據庫
昨天我誤刪了我的數據庫伺服器(Windows平台的Oracle11g)中的數據文件。不幸的是,現在我的數據庫沒有打開。它顯示以下錯誤。
SQL> startup ORACLE instance started. Total System Global Area 2572144640 bytes Fixed Size 2283984 bytes Variable Size 620758576 bytes Database Buffers 1946157056 bytes Redo Buffers 2945024 bytes Database mounted. ORA-01157: cannot identify/lock data file 10 - see DBWR trace file ORA-01110: data file 10: 'C:\APP\SERVICEADMIN\ORADATA\TESTPROD\TEST_IDX02.DBF'
我正在為我的數據庫進行 RMAN 備份,但我刪除了這些備份文件,因為 FRA 文件夾的大小已增加到最大值。但是,我已將這些備份文件保存在本地電腦中。在將這些文件複製到 FRA 備份集位置後,當我嘗試使用 RMAN 還原數據庫時,遇到以下錯誤:
RMAN-00571:============================================== ============= RMAN-00569:=============== 錯誤消息堆棧跟隨 ============== = RMAN-00571: ============================================== ============== RMAN-03002:在 2017 年 2 月 23 日 14:58:35 恢復命令失敗 RMAN-06026:找不到一些目標 - 中止恢復 RMAN-06023:沒有備份或找到要恢復的數據文件 5 的副本 RMAN-06023:找不到要恢復的數據文件 4 的備份或副本 RMAN-06023:找不到要恢復的數據文件 3 的備份或副本 RMAN-06023:找不到要恢復的數據文件 2 的備份或副本RMAN-06023: 找不到要恢復的數據文件 1 的備份或副本
按照建議,我嘗試為備份添加目錄,但仍然無法恢復文件。
RMAN> CATALOG BACKUPPIECE 'C:\FRA\TRENDZPROD\BACKUPSET\2017_02_23\O1_MF_NNNDF_TA G20170223T112327_DBWY6SJK_.BKP'; cataloged backup piece backup piece handle=C:\FRA\TRENDZPROD\BACKUPSET\2017_02_23\O1_MF_NNNDF_TAG201702 23T112327_DBWY6SJK_.BKP RECID=27 STAMP=936726443 RMAN> list copy; specification does not match any datafile copy in the repository specification does not match any control file copy in the repository specification does not match any archived log in the repository RMAN> recover database; Starting recover at 23-FEB-17 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=26 device type=DISK RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 02/23/2017 17:48:37 RMAN-06094: datafile 10 must be restored
我不知道如何使用這些文件恢復我的數據庫。
您只需要恢復或編目儲存在另一個位置的備份。請按照以下步驟操作。
我假設你有 spfile、controlfile 和 redo log 文件。
正如您所說,您已將 RMAN 備份複製到另一個位置,將該備份還原到您的正常備份位置。
編目備份文件。
RMAN> catalog start with '/u01/app/oracle/fast_recovery_area/backupset/';
然後使用 RMAN 恢復數據庫。
RMAN> restore database;
使用可用的歸檔日誌恢復數據庫。
RMAN> recover database;
然後只需嘗試打開數據庫(
resetlogs
如果您執行不完全恢復,請使用子句)。SQL> alter database open;
要麼
SQL> alter database open resetlogs;
完畢!