利用RMAN遷移表空間碰到的問題(一)
嘗試10.2的新特性RMAN的TRANSPORT TABLESPACE進行表空間的遷移過程,其中碰到了不少問題,簡單總結一下。
這一篇介紹TRANSPORT TABLESPACE命令碰到的RMAN-5001錯誤。
在執行TRANSPORT TABLESPACE命令時,出現了這個錯誤:
RMAN> RUN
2> {
3> ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/data1/backup/%U';
4> TRANSPORT TABLESPACE "TEST" DATAPUMP DIRECTORY D_OUTPUT
5> DUMP FILE 'test_meta.dp' EXPORT LOG 'test_meta.log' IMPORT SCRIPT. 'test_import.src'
6> TABLESPACE DESTINATION '/data1/backup';
7> }
分配的通道: C1
通道 C1: sid=289 例項=testrac2 devtype=DISK
RMAN-05026: 警告: 假定以下表空間集適用於指定的時間點
表空間列表要求具有 UNDO 段
表空間 SYSTEM
表空間 UNDOTBS1
表空間 UNDOTBS2
使用 SID='mxak' 建立自動例項
供自動例項使用的初始化引數:
db_name=TESTRAC
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_TESTRAC_mxak
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
#No auxiliary destination in use
#Use default controlfile
啟動自動例項 TESTRAC
Oracle 例項已啟動
系統全域性區域總計 205520896 位元組
Fixed Size 2028912 位元組
Variable Size 146803344 位元組
Database Buffers 50331648 位元組
Redo Buffers 6356992 位元組
自動例項已建立
刪除自動例項
關閉自動例項
Oracle 例項已關閉
自動例項已刪除
釋放的通道: C1
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: tranport tablespace 命令 (在 01/09/2009 01:01:27 上) 失敗
RMAN-20202: 在恢復目錄中未找到表空間
RMAN-06019: 無法轉換表空間名稱"TEST"
RMAN-05517: 臨時檔案 +DISK/testrac/tempfile/temp.265.618591239 與目標資料庫所使用的檔案衝突
RMAN-05001: 輔助檔名 +DISK/testrac/datafile/sysaux.264.618591225 與正由目標資料庫使用的檔案發生衝突
RMAN-05001: 輔助檔名 +DISK/testrac/datafile/undotbs2.266.618591249 與正由目標資料庫使用的檔案發生衝突
RMAN-05001: 輔助檔名 +DISK/testrac/datafile/undotbs1.263.618591197 與正由目標資料庫使用的檔案發生衝突
RMAN-05001: 輔助檔名 +DISK/testrac/datafile/system.262.618591167 與正由目標資料庫使用的檔案發生衝突
RMAN> exit
恢復管理器完成。
其實造成這個錯誤的原因很簡單,就是沒有設定AUXILIARY DESTINATION。
由於Oracle會建立一個輔助例項,並在這個例項上進行資料庫的及時點恢復過程,因此恢復過程會還原資料庫所有資料檔案,然後利用歸檔將資料庫恢復到某個時間點。
如果沒有設定AUXILIARY DESTINATION引數,且不透過其他手段設定輔助例項資料檔案的儲存位置的話,那麼輔助例項選擇的資料檔案位置和源資料庫一致,這也就造成了上面的錯誤。
最簡單的解決方法,就是設定AUXILIARY DESTINATION,設定了這個引數後,除了遷移表空間對應的資料檔案外(這些檔案的儲存位置由TABLESPACE DESTINATION引數確定),其他的資料檔案、控制檔案,以及引數檔案都儲存在AUXILIARY DESTINATION設定的目錄中。
除了設定AUXILIARY DESTINATION這個方法外,還可以利用SET NEWNAME來設定每個資料檔案的位置,不過這種方法相對要麻煩一些,需要具體設定每一個需要處理的資料檔案。還有一種類似的方法,透過CONFIGURE AUXNAME FOR依次設定每個資料檔案的新位置。這兩種方法都比較麻煩,需要設定每個檔案,比較容易出問題,不過好處是可以定製每個檔案的位置,對於不希望將所有檔案儲存在一個目錄下的情況,可以使用這兩種方法。
除此之外,還有一種方法,就是透過設定輔助例項啟動所需的初始化引數:SET AUXILIARY INSTANCE PARAMETER FILE。可以手工編輯一個初始化引數,並設定合適的LOG_FILE_NAME_CONVERT和DB_FILE_NAME_CONVERT引數。這種方法其實也不簡單,不過需要對輔助例項進行定製的情況,可以考慮這種方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-567103/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用RMAN遷移表空間碰到的問題(五)
- 利用RMAN遷移表空間碰到的問題(四)
- 利用RMAN遷移表空間碰到的問題(三)
- 利用RMAN遷移表空間碰到的問題(二)
- RMAN遷移表空間
- Oracle10g新特性——利用RMAN遷移表空間(一)Oracle
- Oracle10g新特性——利用RMAN遷移表空間Oracle
- 利用PLSQL實現表空間的遷移(一)SQL
- 使用RMAN簡單遷移表空間
- Oracle10g新特性——利用RMAN遷移表空間(二)Oracle
- 利用可傳輸表空間跨平臺遷移 -RMAN CONVERT
- 利用oracle10g_rman_convert_transportable tablespace遷移表空間Oracle
- 利用PLSQL實現表空間的遷移(二)SQL
- 利用PLSQL實現表空間的遷移(四)SQL
- 利用PLSQL實現表空間的遷移(三)SQL
- 利用PLSQL實現表空間的遷移(五)SQL
- 表空間遷移
- 遷移表空間
- 【遷移】表空間transport
- 記錄一次XTTS遷移碰到的問題TTS
- 遷移表到新的表空間
- ORACLE表批量遷移表空間Oracle
- 遷移SYSTEM表空間為本地管理表空間
- 遷移表結構時儲存空間過大問題
- 基於可傳輸表空間的表空間遷移
- expdp/impdp 遷移表空間
- 利用CONVERT實現跨平臺表空間遷移
- 跨平臺表空間遷移(傳輸表空間)
- Oracle中表空間、表、索引的遷移Oracle索引
- table/index/LOBINDEX遷移表空間Index
- lob欄位表空間遷移
- Oracle 不同平臺間表空間遷移Oracle
- MySQL 遷移表空間,備份單表MySql
- 表、索引遷移表空間alter table move索引
- 利用MV+EXP+TRIGGER動態遷移資料庫碰到的一些問題資料庫
- 空間遷移
- 分割槽表對應的表空間遷移案例
- 表空間遷移辦法補充