问题动作描述: 
1.我的服务环境有两个,一个测试库,一个正式库,两个库的信息一样
2.测试库的数据有改动
3.将测试库备份,导入到正式库问题:
  测试库(备份库)信息不能覆盖正式库信息.怎么解决???
 
要求:
  不新建库,不新建用户,只能用原来的用户,原来的库将备份数据覆盖正式库数据

解决方案 »

  1.   

    exp/impimp时fromuser=原用户名 touser=目标用户名 ignore=y。但得注意不违反表上约束(如唯一等)。
      

  2.   

    是2个schema?select * from test_schema.表;select * from product_schema.表;用个SQL去合并下。
      

  3.   

    测试库的变更做好脚本,然后在正式库上执行脚本。
    这样比较安全,如果直接exp,imp可能出问题
      

  4.   

    生成变更脚本可以使用pl/sql developer的
    Tools->Compare User Objects...
      

  5.   

       用imp导入,还就是违反唯一约束了。我现在目的是不管正式库存在多少信息,我都要用测试库的信息覆盖
      

  6.   

    将原来的用户删了,再新建一个同名的用户,再IMP导入即可
      

  7.   

    如果表上有唯一约束,而你又必须把测试库信息全部导入到同一表,无论你怎么操作,都无法成功。
    可以考虑先disable唯一约束,导入完毕再enable之。enable时,选择novalidate,即不检查已有数据唯一性,只针对以后进入的数据进行检测。
      

  8.   

    给每个表加个insert触发器把新增的记录的表名和id存到另外一个表里,然后导出时做过滤
    或者用链接服务器直接把insert数据传过去
      

  9.   

    顶一下
       oracle QQ群:54775466
               期待您的一起探讨
                          欢迎爱好者入群学习
      

  10.   

    我的最后解决方案:drop tablespace下的table里的所有表,然后再导入