有朋友問在Oracle 10G R2版本中:
只有原庫數據文件的RMAN備份集(此備份集不包含控制文件,log,參數文件等等,單純只有數據庫的所有數據文件的備份集),主庫廢了(可以理解為機房所在地地震了).
現在要求在新實例中恢復這個RMAN的數據文件備份集.
1.原數據庫的表空間名稱,數據文件結構\名稱\數量--未知.
2.原數據文件的FILE#也許是不連續(xù)的.(可能5號文件后6.7.8都空閑,然后是9號數據文件.)
這樣說吧,可以說你對原數據庫一無所知.
我試過dbms_backup_restore抽取RMAN備份集中數據文件,再建立控制文件,確實可以恢復但,這個方法有局限性,不夠完美.
抽取的時候需要指明FILE#,NEW_DATAFILE_NAME...
可以說抽取是嘗試的抽取.FILE#=5,6,7這樣一個一個的嘗試,這就對多數據文件的庫很麻煩,而且文件號不連續(xù)會報錯停止抽取動作.下一條抽取動作就無法繼續(xù)執(zhí)行.要手動關閉通道后再次抽取.
迫切的想知道如何查出RMAN的備份集中的數據文件信息.
想知道如何收集全建立出支持這個備份集的控制文件.
?
我們知道Oracle10g豐富了catalog命令,使用這個命令,可以將RMAN的備份集注冊到控制文件(或者目錄數據庫中)
類似的一系列命令有:
?
CATALOG ARCHIVELOG '?/oradata/archive1_30.dbf', '?/oradata/archive1_31.dbf',
? ? ? ? ? ? ? ? ? '?/oradata/archive1_32.dbf';
CATALOG DATAFILECOPY '?/oradata/users01.bak' LEVEL 0;
CATALOG START WITH '/tmp/arch_logs';
CATALOG RECOVERY AREA NOPROMPT;
CATALOG BACKUPPIECE '?/oradata/01dmsbj4_1_1.bcp';
但是注意這些命令是有限制的,其中的一個限制是不能注冊備份文件到不同的數據庫:
You cannot use CATALOG to catalog a file that belongs to a different database.
也就是說你至少還需要原數據庫的控制文件。
否則就會出現類似如下的錯誤:
?
[oracle@standby ~]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Thu May 22 01:02:56 2008
Copyright (c) 1982, 2005, Oracle.? All rights reserved.
connected to target database (not started)
RMAN> set dbid=1490303982
executing command: SET DBID
RMAN> startup mount;
Oracle instance started
database mounted
Total System Global Area? ? 285212672 bytes
Fixed Size? ? ? ? ? ? ? ? ? ? 1218992 bytes
Variable Size? ? ? ? ? ? ? ? 92276304 bytes
Database Buffers? ? ? ? ? ? 188743680 bytes
Redo Buffers? ? ? ? ? ? ? ? ? 2973696 bytes
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 05/22/2008 01:03:08
RMAN-06189: current DBID 1490303982 does not match target mounted database (1492784050)
是否沒有辦法呢?當然是有的,我們可以先修改一個恢復數據庫的DBID,然后再來注冊這個備份集。
修改DBID可以使用之前我曾經寫過的,Oracle10g 的 dbms_backup_restore 包。
修改之后就可以用來注冊了,看看我注冊一個種子數據庫備份集的過程:
?
C:\>rman target /
恢復管理器: Release 10.2.0.3.0 - Production on 星期三 5月 21 22:25:34 2008
Copyright (c) 1982, 2005, Oracle.? All rights reserved.
已連接到目標數據庫 (未啟動)
RMAN> startup mount;
Oracle 實例已啟動
數據庫已裝載
系統(tǒng)全局區(qū)域總計? ? 251658240 字節(jié)
Fixed Size? ? ? ? ? ? ? ? ? ? 1289988 字節(jié)
Variable Size? ? ? ? ? ? ? ? 171966716 字節(jié)
Database Buffers? ? ? ? ? ? ? 75497472 字節(jié)
Redo Buffers? ? ? ? ? ? ? ? ? 2904064 字節(jié)
RMAN> catalog start with 'd:\obak';
使用目標數據庫控制文件替代恢復目錄
搜索與樣式 d:\obak 匹配的所有文件
數據庫未知文件的列表
=====================================
文件名: D:\obak\FULL20080520
文件名: D:\obak\Seed_Database.dfb
是否確實要將上述文件列入目錄 (輸入 YES 或 NO)? YES
正在編制文件目錄...
目錄編制完畢
已列入目錄的文件的列表
=======================
文件名: D:\obak\Seed_Database.dfb
未列入目錄的文件的列表
=======================================
文件名: D:\obak\FULL20080520
? RMAN-07518: 原因: 外部數據庫文件 DBID: 1052376487? 數據庫名: EEYGLE
RMAN> list backup;
備份集列表
===================
BS 關鍵字? 類型 LV 大小
------- ---- -- ----------
2? ? ? Full? ? 91.88M
? 備份集 2 中的數據文件列表
? 文件 LV 類型 Ckp SCN? ? Ckp 時間? 名稱
? ---- -- ---- ---------- ---------- ----
? 1? ? ? Full 538267? ? 19-11月-06 D:\ORACLE\ORADATA\EYGLE\DATAFILE\O1_MF_SYSTEM_3V7YLH8S_.DBF
? 2? ? ? Full 538267? ? 19-11月-06 D:\ORACLE\ORADATA\EYGLE\DATAFILE\O1_MF_UNDOTBS1_3V7YLHHN_.DBF
? 3? ? ? Full 538267? ? 19-11月-06 D:\ORACLE\ORADATA\EYGLE\DATAFILE\O1_MF_SYSAUX_3V7YLH9R_.DBF
? 4? ? ? Full 538267? ? 19-11月-06 D:\ORACLE\ORADATA\EYGLE\DATAFILE\O1_MF_USERS_3V7YLHJ3_.DBF
? 備份集 副本號 1 屬于備份集 2
? 設備類型 經過時間 完成時間? 壓縮標記
? ----------- ------------ ---------- ---------- ---
? DISK? ? ? ? 00:00:00? ? 21-5月 -08 YES
? ? 備份集 2 副本號 1的備份段列表
? ? BP 關鍵字? Pc# 狀態(tài)? ? ? 段名稱
? ? ------- --- ----------- ----------
? ? 1? ? ? 1? AVAILABLE? D:\OBAK\SEED_DATABASE.DFB
? 備份集 副本號 2 屬于備份集 2
? 設備類型 經過時間 完成時間? 壓縮標記
? ----------- ------------ ---------- ---------- ---
? DISK? ? ? ? 00:00:00? ? 21-5月 -08 YES
? ? 備份集 2 副本號 2的備份段列表
? ? BP 關鍵字? Pc# 狀態(tài)? ? ? 段名稱
? ? ------- --- ----------- ----------
? ? 2? ? ? 1? AVAILABLE? D:\OBAK\SEED_DATABASE.DFB
RMAN>
關鍵詞標簽:Catalog命令
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數據庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數據處理 Oracle刪除表的幾種方法