尝试10.2的新特性RMAN的TRANSPORT TABLESPACE进行表空间的迁移过程,其中碰到了不少问题,简单总结一下。
这一篇介绍TRANSPORT TABLESPACE命令碰到的RMAN-20202错误。
利用RMAN迁移表空间碰到的问题(一):http://yangtingkun.itpub.net/post/468/480070
这个错误可能是比如容易碰到的一个错误:
bash-2.03$ rman target /
恢复管理器: Release 10.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
2> {
3> ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/data1/backup/%U';
4> TRANSPORT TABLESPACE "TEST" DATAPUMP DIRECTORY D_OUTPUT
5> AUXILIARY DESTINATION '/data1/backup'
6> DUMP FILE 'test_meta.dp' EXPORT LOG 'test_meta.log' IMPORT SCRIPT. 'test_imp.src'
7> TABLESPACE DESTINATION '/data1/oradata/test/test';
8> }
使用目标数据库控制文件替代恢复目录
分配的通道: C1
通道 C1: sid=285 实例=testrac2 devtype=DISK
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
表空间 UNDOTBS2
使用 SID='cmja' 创建自动实例
供自动实例使用的初始化参数:
db_name=TESTRAC
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_TESTRAC_cmja
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_TESTRAC_cmja.f
启动自动实例 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 02:00:13 上) 失败
RMAN-20202: 在恢复目录中未找到表空间
RMAN-06019: 无法转换表空间名称"TEST"
其实这个错误也很简单,就是RMAN在尝试执行表空间及时点恢复的时候,发现还原操作所需要的表空间在当前数据库备份中无法找到。
Oracle执行的这个表空间及时点恢复是一个数据库级的恢复,并非只需要目标表空间的备份。
除了目标表空间的备份以外,RMAN还需要SYSTEM、SYSAUX以及UNDO表空间的备份,如果任意一个表空间的备份不存在,则就会导致上面的错误。
所以在执行TRANSPORT TABLESPACE命令之前,应该首先检查上面的表空间备份是否存在,如果不存在的话,应该首先执行备份操作。
其实RMAN完全可以设置的更加只能一些,因为备份对于RMAN是在简单不过的事情,如果发现个别表空间的备份不存在,RMAN完全可以先对所需的表空间进行备份,等到所有的备份完成后,在设置恢复的SCN到当时的系统SCN,然后执行表空间及时点的恢复。
如果对于产品环境而言,数据库的备份肯定不成问题,对于测试环境没有备份的情况,可以考虑先备份整个数据库,然后在执行TRANSPORT TABLESPACE命令。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-567234/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4227/viewspace-567234/