如何将选择性数据从一个数据库复制到另一个数据库(ORACLE)

时间:2015-11-19 17:08:05

标签: java oracle

我们需要找到一种方法将某些数据从生产中复制到我们的开发区域,以便我们可以调试/修复任何问题。 有时单个用户相关数据会受到影响。我们必须在dev中复制相同的场景并找到解决方案。 目前我们遵循两种方法: -

 1. Check the audit history and try to recreate the similar scenario
    in  dev. <50% sucess rate in recreating the exact same scenario.
 2. Restore+Encrypt the "whole" production into dev and then continue
    on  the work. It is an overkill if issue impacts only a single user.

所以我试图找到一种方法,只从生产中选择一个用户数据并将其插入到dev区域。

  

我们只有Java和Oracle。无法使用任何外部工具。因为我们   由于安全问题,没有许可证,也无法下载免费软件。

我尝试了以下内容: -

  1. 编写一个java代码,该代码将查询信息模式表以查找表之间的关系并创建如下所示的select语句: -
  2. select 'insert into TABLE1(C1,C2,C3,C4) values ('||''''||C1||''''||','||coalesce(to_char(C2),'null')||','||''''||C3||''''||','||coalesce(to_char(C4),'null'));'
    from TABLE1 where ID='1006' union all 
    select 'insert into TABLE2(C1,C2,C3,C4) values ('||''''||C1||''''||','||coalesce(to_char(C2),'null')||','||''''||C3||''''||','||coalesce(to_char(C4),'null'));'
    from TABLE2 WHERE TABLE1ID in ( select ID FROM TABLE1 where ID='1006') union all 
    select 'insert into TABLE3(C1,C2,C3,C4) values ('||''''||C1||''''||','||coalesce(to_char(C2),'null')||','||''''||C3||''''||','||coalesce(to_char(C4),'null'));'
    from TABLE3 WHERE TABLE2ID in ( select ID FROM TABLE2 WHERE TABLE1ID in ( select ID FROM TABLE1 where ID='1006'));
    
    2.在生产中使用这组选择,以便获得一组插入语句作为输出。 3.使用dev。

    中的insert语句

    问题: - 选择查询变得越来越大。总共约25 MB :( 我们甚至无法在生产中执行那个大查询。

    你能为这个用例建议更好的方法吗? oracle本身是否允许选择性数据导出?或者我应该编写我的java代码?

3 个答案:

答案 0 :(得分:5)

我们使用类似的东西将记录从一个数据库移动到另一个数据库:

copy from username/password@database1 to username/password@database2 insert target_table using select * from source_table where where_clause_goes_here;

答案 1 :(得分:5)

使用数据泵移动所需表格的数据,并使用您想要的whereclause。数据库的直接和标准功能。

答案 2 :(得分:0)

如果两个DB都是Oracle,则可以在本地创建DBLINK 远程数据库的数据库和在本地数据库中创建查询的作业 来自远程数据库的所有数据使用DBLINK,并更新您的表中的表 本地数据库。 或者有大量的数据迁移API可用,你可以尝试其中一个。

下面是一些链接,看看他们,可能会解决你的问题

http://code.google.com/p/c5-db-migration/

http://flywaydb.org/documentation/migration/java.html

http://migrate4j.sourceforge.net/

http://flywaydb.org/ ---最好使用

http://www.operatornew.com/2012/11/automatic-db-migration-for-java-web.html