尝试10.2的新特性RMAN的TRANSPORT TABLESPACE进行表空间的迁移过程,其中碰到了不少问题,简单总结一下。
这一篇介绍TRANSPORT TABLESPACE命令碰到的RMAN-20202错误。
利用RMAN迁移表空间碰到的问题(一):http://yangtingkun.itpub.net/post/468/480070
这个错误可能是比如容易碰到的一个错误:
bash-2.03$ rman target /
恢复管理器: Release10.2.0.3.0 - Production on星期五1月9 01:42:22 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: TESTRAC (DBID=4291216984)
RMAN> RUN
q)g#p2D4ad2355072> {ITPUB个人空间zwo3_5@a]K
3> ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/data1/backup/%U';ITPUB个人空间["LZ|D P]#F
4> TRANSPORT TABLESPACE "TEST" DATAPUMP DIRECTORY D_OUTPUTITPUB个人空间@Qv%BgBW%a#O`
5> AUXILIARY DESTINATION '/data1/backup'
(O1L"bK'px cR2355076> DUMP FILE 'test_meta.dp' EXPORT LOG 'test_meta.log' IMPORT SCRIPT. 'test_imp.src'ITPUB个人空间*WNT/Z&i sk
7> TABLESPACE DESTINATION '/data1/oradata/test/test';
1[e5l*Ox:vp!q2355078> }
使用目标数据库控制文件替代恢复目录
vH0^/L-P/eK/eD235507分配的通道: C1
C~+{(g,HKU235507通道C1: sid=285实例=testrac2 devtype=DISK
RMAN-05026:警告:假定以下表空间集适用于指定的时间点
表空间列表要求具有UNDO段ITPUB个人空间0Y&E-[N2su!P
表空间SYSTEMITPUB个人空间^2vK/l[
表空间UNDOTBS1ITPUB个人空间(hy2{XkEHgl.E;qch
表空间UNDOTBS2
使用SID='cmja'创建自动实例
供自动实例使用的初始化参数:
0P%BD,J e(i235507db_name=TESTRACITPUB个人空间N^ g uw:pG
compatible=10.2.0.1.0ITPUB个人空间$S.B(h?+F~ u3[5P'Z8r.D
db_block_size=8192ITPUB个人空间 cosm#G7~
db_files=200
:x#ZUfQ"X5x235507db_unique_name=tspitr_TESTRAC_cmjaITPUB个人空间B/z h,q:\d_
large_pool_size=1M
!ssJc0F/^Wt u6Gf}5@235507shared_pool_size=110MITPUB个人空间n!B,bC[ LN&eB:j5C#UG
#No auxiliary parameter file used
x:j:D$NE;u235507db_create_file_dest=/data1/backup
|r gM2WD-e235507control_files=/data1/backup/cntrl_tspitr_TESTRAC_cmja.f
.\/e e{;~'xJ235507启动自动实例TESTRAC
Oracle实例已启动
系统全局区域总计 205520896字节
Fixed Size 2028912字节
.C%L6SF`.FI-^235507Variable Size 146803344字节ITPUB个人空间v(AHha
Database Buffers 50331648字节
BvC!v%W7n`P235507Redo Buffers 6356992字节ITPUB个人空间+d.t"P [z\"E
自动实例已创建
删除自动实例ITPUB个人空间7rR t$Q {:V*g-F
关闭自动实例ITPUB个人空间!S0pW\4{ yTz
Oracle实例已关闭ITPUB个人空间 T}:iGm7f8s
自动实例已删除
y0W8pN.R235507释放的通道: C1ITPUB个人空间?(N.|4_t AO)@&p,I
MAN-00571: ===========================================================
.rpd MW%^W235507RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============ITPUB个人空间'o(m o[#j&hT"Bv
RMAN-00571: ===========================================================
0G#]x5c{$v235507RMAN-03002: tranport tablespace命令(在01/09/2009 02:00:13上)失败ITPUB个人空间 i'KV f eW4\)Y
RMAN-20202:在恢复目录中未找到表空间ITPUB个人空间h#xu1I{Y)Kd
RMAN-06019:无法转换表空间名称"TEST"
其实这个错误也很简单,就是RMAN在尝试执行表空间及时点恢复的时候,发现还原操作所需要的表空间在当前数据库备份中无法找到。
Oracle执行的这个表空间及时点恢复是一个数据库级的恢复,并非只需要目标表空间的备份。
除了目标表空间的备份以外,RMAN还需要SYSTEM、SYSAUX以及UNDO表空间的备份,如果任意一个表空间的备份不存在,则就会导致上面的错误。
所以在执行TRANSPORT TABLESPACE命令之前,应该首先检查上面的表空间备份是否存在,如果不存在的话,应该首先执行备份操作。
其实RMAN完全可以设置的更加只能一些,因为备份对于RMAN是在简单不过的事情,如果发现个别表空间的备份不存在,RMAN完全可以先对所需的表空间进行备份,等到所有的备份完成后,在设置恢复的SCN到当时的系统SCN,然后执行表空间及时点的恢复。
如果对于产品环境而言,数据库的备份肯定不成问题,对于测试环境没有备份的情况,可以考虑先备份整个数据库,然后在执行TRANSPORT TABLESPACE命令。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/235507/viewspace-591589/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/235507/viewspace-591589/