利用RMAN遷移表空間碰到的問題(三)

yangtingkun發表於2009-03-14

嘗試10.2的新特性RMANTRANSPORT TABLESPACE進行表空間的遷移過程,其中碰到了不少問題,簡單總結一下。

這一篇介紹TRANSPORT TABLESPACE命令碰到的RMAN-6034錯誤。

利用RMAN遷移表空間碰到的問題(一):http://yangtingkun.itpub.net/post/468/480070

利用RMAN遷移表空間碰到的問題(二):http://yangtingkun.itpub.net/post/468/480171

 

 

這個錯誤其實是由於對TRANSPORT TABLESPACE命令不瞭解造成的:

RMAN> run
2> {
3> allocate channel c1 device type disk format '/data1/backup/%U';
4> transport tablespace yangtk auxiliary destination '/data1/backup'
5> datapump directory d_output dump file 'yangtk_meta.dp'
6> export log 'yangtk_meta.log' import script. 'yangtk_imp.src'
7> tablespace destination '/data1/backup';
8> }

分配的通道: c1
通道 c1: sid=146 devtype=DISK

RMAN-05026: 警告: 假定以下表空間集適用於指定的時間點

表空間列表要求具有 UNDO
表空間 SYSTEM
表空間 UNDOTBS1

使用 SID='hmAy' 建立自動例項

供自動例項使用的初始化引數:
db_name=TEST
compatible=10.2.0.3.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_TEST_hmAy
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=/data1/backup
control_files=/data1/backup/cntrl_tspitr_TEST_hmAy.f


啟動自動例項 TEST

Oracle 例項已啟動

系統全域性區域總計     205520896 位元組

Fixed Size                     2028912 位元組
Variable Size                146803344
位元組
Database Buffers              50331648
位元組
Redo Buffers                   6356992
位元組
自動例項已建立

記憶體指令碼的內容:
{
# set the until clause
set until  scn 3558059;
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log for tspitr to a resent until time
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
}
正在執行記憶體指令碼

正在執行命令: SET until clause

啟動 restore 09-1 -09


刪除自動例項
關閉自動例項
Oracle
例項已關閉
自動例項已刪除
釋放的通道: c1
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: tranport tablespace
命令 ( 01/09/2009 02:19:28 ) 失敗
RMAN-03015:
在儲存的指令碼Memory Script中出現錯誤
RMAN-06034:
執行此命令時必須至少分配一個通道

這個錯誤其實很簡單,由於TRANSPORT TABLESPACE命令需要建立AUXILIARY例項,所以需要建立AUXILIARY CHANNEL。而上面採用了RUN的方式執行TRANSPORT TABLESPACE命令,雖然ALLOCATE了一個CHANNEL,但是並沒有分配AUXILIARY CHANNEL,所以導致RMAN在執行過程中碰到了這個問題。

解決方法很簡單,如果要使用RUN的方式,就手工分配一個AUXILIARY CHANNEL,或者直接使用命令的方式,RMAN會自動建立AUXILIARY CHANNEL

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-567355/,如需轉載,請註明出處,否則將追究法律責任。

相關文章