2012-07-10 12 views
0

我们必须从Web服务,平面文件和其他外部源将大量数据导入生产数据库。 我们使用spring批处理来做到这一点。如何将大量数据导入生产数据库? (我们正在使用Java)

其中一个主要问题是,其中一些数据是相互关联的,但不会同时导入。 另一个主要问题是有很多数据,所以如果发生问题,我不能真正做出大量的事务并回滚。

我该怎么做?

+0

数据库是否在生产过程中生产? – 2012-07-10 13:05:43

+0

什么是您的数据库和(如果适用)什么是表引擎? – 2012-07-10 13:24:00

+0

这是一个网站,数据库正在喂它。我们无法将其脱机。 我们正在使用SQL Server 2k8 – mrmuggles 2012-07-10 13:44:13

回答

1

最好的办法是将数据加载到未在运行的应用程序中使用的“保存”表中。然后在应用程序最不繁忙时查看使用SELECT INTO将数据复制到应用程序表中。

这种方法的优点是

  1. 将数据装载到保持工作台对您的申请表
  2. 根据您的数据库配置SELECT INTO没有锁定的影响可以用最少的(或没有)来完成写入交易日志使其非常有效
+0

我是要使用这个解决方案,但是我必须在做“select into”之前做一些验证,其中一些操作将会更新或停用(我不会删除任何东西)。 – mrmuggles 2012-07-10 19:29:15

1

假设您正在执行此操作时数据库不在服务器中:备份数据库,关闭所有约束检查,导入数据,重新打开约束。如果全部失败,那么至少你有备份可以重新使用。

+0

这是一个网站数据库。不能做到这一点:( – mrmuggles 2012-07-10 13:18:55

+0

uuh零停机时间的幻想......我想这是不可能实现的。你不能只是在一个副本上工作,然后在某个时刻从DB1切换到DB2的配置吗? – BigMike 2012-07-10 15:25:06

相关问题