Oracle-11g-R2
在 Oracle 11g 中刪除數據文件而不刪除表空間
我試圖使用 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。
如果您沒有有效的備份,您有兩個選擇:
- 您刪除表空間,該表空間中的所有內容都將被永久刪除
- 盡可能多地導出,刪除並重新創建表空間並導入您之前導出的內容。
*“盡可能多地出口”*是指:
- 您可以從此表空間中導出對象的定義,因為這些定義位於 SYSTEM 表空間中。
- 如果表空間包含多個數據文件,您可以從該表空間的所有剩餘數據文件中導出數據。
這些導出可以使用expdp datapump 工具完成。使用TABLESPACES參數指定要導出的表空間的名稱。如果您只想導出對象集的定義
CONTENT=METADATA_ONLY
可以使用impdp工具進行導入。
首先,您不能通過
touch
. 始終使用ALTER TABLESPACE ... ADD DATAFILE
命令創建數據文件。您放錯了數據文件,因此您應該遵循http://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles005.htm中描述的過程。我希望你有一個很好的備份來取回你刪除的數據文件的正確版本。