比如我有两个用户,一个是user1,另一个是user2。其中user1跑的是正式版的程序,user2跑测试版。现在我想把测试版的数据移到正式版内,也就是将user2的数据移到user1内,该怎么办?应该会出现ID重复的现象。这样的操作是不是叫数据库移植?
要保持数据的完整性,但是有很多的关联表。请问有大哥做过类似的操作吗?

解决方案 »

  1.   

    数据量大的时候,怎么办呢。。
    试下导出整个用户数据
    lsnrctl startnet start OracleServiceORCLsqlplus / as sysdba
    conn / as sysdba
    --create user admin identified by admin;grant dba to scottconn scott/123drop table emp;
    drop table dept;
    host imp scott/123 file=F:/rtax1.dmp full=yexp scott/123 file=F:/rtax1.dmp owner=(scott)
      

  2.   

    我做过 做的是数据迁移 db2(生产环境)数据迁移到oracle(测试环境)上  但是表的结构是要完全一样的 才能做迁移 用pb工具做的迁移 
      

  3.   

    记得别手动 写SQL 会累死你的  数据字段 多了 怎么办 还容易错
      

  4.   

    用plsql将数据往外面导就是了
      

  5.   

    你没有理解我的意思,可能我没有说清楚。
    如果是不同用户,其中一个用户下什么都没有(包括表、序列、函数、存储过程等),完全copy过去,这样的我会。无外乎就是一个exp,一个imp语句就完了。
    但是现在两个用户都有数据,我要做的是将第二个用户里的部分数据添加到的一个用户里的表中。这么说明白了吗?accplcj:
    首先谢谢你的回复。pb工具我没有用过,使用时有什么注意事项吗?ZlnAJH:
    你那个方法不行导入之前要删表,但我原来的表可都是有数据的啊!
      

  6.   

    多库合并中的主键重复很讨厌,因此现在很多数据表都采用 UUID 作为主键。如果是数字主键的话,并且两个库中的表都是从某个值开始的话,那冲突势必很多。我建议将 USER1 库中表所有主键列、外键列都 UPDATE 成为负数。做这些操作之前,先将 USER1 和 USER2 库进行备份。
      

  7.   


    说错了,应该是测试库的 USER2 库与主键相关的都改为负的。PS:为啥要把测试库数据导到正式库中去?