Oracle

失去數據文件後無法打開數據庫

  • February 24, 2017

昨天我誤刪了我的數據庫伺服器(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;

完畢!

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