Oracle-11g-R2

在 Oracle 11g 中刪除數據文件而不刪除表空間

  • September 11, 2015

我試圖使用 RMAN 備份 Oracle 11g 中的數據庫

     $ rman target /
   Recovery Manager: Release 11.2.0.1.0 - Production on Fri Sep 11 10:14:37 2015

   Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

   connected to target database: ORCL (DBID=1415405400)

RMAN> backup incremental level 0 as compressed backupset database;

Starting backup at 11-SEP-15
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK
RMAN-06169: could not read file header for datafile 5 error reason 4
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 09/11/2015 10:16:58
RMAN-06056: could not access datafile 5

我放錯了數據文件,然後我添加了執行觸摸命令的數據文件,但我仍然收到數據庫無法鎖定文件的錯誤。我將數據庫置於掛載模式,然後將該文件離線,開始備份後出現同樣的錯誤。那麼如何在不刪除表空間的情況下解決此錯誤

數據庫備份和恢復參考說您可以通過以下方式進行備份

backup incremental level 0 as compressed backupset database skip inaccessible;

或更好

backup incremental level 0 as compressed backupset database skip offline;

但是您的問題是,如果沒有有效的備份,數據文件 5 中的數據會很多。

如果您有有效的備份,您可以恢復數據文件 5。

如果您沒有有效的備份,您有兩個選擇:

  1. 您刪除表空間,該表空間中的所有內容都將被永久刪除
  2. 盡可能多地導出,刪除並重新創建表空間並導入您之前導出的內容。

*“盡可能多地出口”*是指:

  1. 您可以從此表空間中導出對象的定義,因為這些定義位於 SYSTEM 表空間中。
  2. 如果表空間包含多個數據文件,您可以從該表空間的所有剩餘數據文件中導出數據。

這些導出可以使用expdp datapump 工具完成。使用TABLESPACES參數指定要導出的表空間的名稱。如果您只想導出對象集的定義CONTENT=METADATA_ONLY

可以使用impdp工具進行導入。

首先,您不能通過touch. 始終使用ALTER TABLESPACE ... ADD DATAFILE命令創建數據文件。

您放錯了數據文件,因此您應該遵循http://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles005.htm中描述的過程。我希望你有一個很好的備份來取回你刪除的數據文件的正確版本。

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