解决方案 »

  1.   

    没用过这种方式配置
    但这里的source_database和destination_database对应的是两个dblink吧,在主库上要创建一个指向备库的dblink,备库同理创建一个到主库的,dblink的名称必须和对应数据库的global name一致
      

  2.   

    问题解决了,版本差异的问题。dbms_streams_adm.maintain_tables存储过程使用nstantiation => dbms_streams_adm.instantiation_table_network复制表,其实是使用dblink的impdb进行传播而impdb的原则如下:
    由于Oracle的imp/exp组件的操作原则--向下兼容,且有一些规则:
        规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器;
        规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容);
        规则3:从Oracle 低版本Export的数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 10 到 Oracle 11.对于两个不相邻版本间进行转换,如从Oracle 9 到 Oracle 11,则应先将数据输入到中间版本-Oracle 10,再从中间数据库转入更高版本Oracle 11. 
    --->>综上,如果用EXP/IMP做数据迁移,最好导出端和导入端oracle版本一致或差异不要太大,当然datapump有这种避免版本差异的配制.