rman是不可能实现这要的需求的。我建议你,利用第三方的数据迁移工具。

解决方案 »

  1.   

    为什么不用exp的传送表空间的功能?。
      

  2.   

    唉,领导为了节省机器,要求在两台正常运行的机器上进行数据互备,即A机器上的损坏后,可以马上切换到B机器上,同样B损坏了也可以马上切换到A,现在A和B每天都是用RMAN进行备份,但是用RMAN备份就不能做到将A的表空间移植到B,只能每天用exp进行备份,但是我怕数据量大了exp每天处理不了,所以请教大侠们了
      

  3.   

    传输表空间~
    http://blog.itpub.net/post/468/13902
      

  4.   

    利用表空间传输出现新的问题,我有一个用户user1,对应索引表空间和数据表空间user1_indx,user1_data,执行下面语句传输时
    exp """sys/syspwd@test as sysdba""" file=D:\mydata.dmp transport_tablespace=y tablespaces=user1_data,user1_indx triggers=n constraints=y grants=y 
    出现错误,提示传送集不是自包含的,难道我非得将索引更改到user1_data表空间后才能执行表空间传输,不是有人说两个表空间间自包含同时包含两个表空间不就可以了,请问大侠们如何解决?
      

  5.   

    http://www.itpub.net/125099.html4.1.2 表空间传输
    表空间传输是8i新增加的一种快速在数据库间移动数据的一种办法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成Dmp文件,这在有些时候是非常管用的,因为传输表空间移动数据就象复制文件一样快。
    关于传输表空间有一些规则,即:
    ·源数据库和目标数据库必须运行在相同的硬件平台上。
    ·源数据库与目标数据库必须使用相同的字符集。
    ·源数据库与目标数据库一定要有相同大小的数据块
    ·目标数据库不能有与迁移表空间同名的表空间
    ·SYS的对象不能迁移
    ·必须传输自包含的对象集
    ·有一些对象,如物化视图,基于函数的索引等不能被传输
    可以用以下的方法来检测一个表空间或一套表空间是否符合传输标准:
    exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true);
    select * from sys.transport_set_violation;
    如果没有行选择,表示该表空间只包含表数据,并且是自包含的。对于有些非自包含的表空间,如数据表空间和索引表空间,可以一起传输。
    以下为简要使用步骤,如果想参考详细使用方法,也可以参考ORACLE联机帮助。
    1.设置表空间为只读(假定表空间名字为APP_Data 和APP_Index)
    alter tablespace app_data read only;
    alter tablespace app_index read only;
    2.发出EXP命令
    SQL>host exp userid=”””sys/password as sysdba””” 
    transport_tablespace=y tablespace=(app_data, app_index)
    以上需要注意的是
    ·为了在SQL中执行EXP,USERID必须用三个引号,在UNIX中也必须注意避免“/”的使用
    ·在816和以后,必须使用sysdba才能操作
    ·这个命令在SQL中必须放置在一行(这里是因为显示问题放在了两行)
    3.拷贝数据文件到另一个地点,即目标数据库
    可以是cp(unix)或copy(windows)或通过ftp传输文件(一定要在bin方式)
    4.把本地的表空间设置为读写
    5.在目标数据库附加该数据文件
    imp file=expdat.dmp userid=”””sys/password as sysdba”””
    transport_tablespace=y
    “datafile=(c:\temp\app_data,c:\temp\app_index)”
    6.设置目标数据库表空间为读写
    alter tablespace app_data read write;
    alter tablespace app_index read write;