2012-07-11 101 views
2

我想知道什么方法将您的巨大的旧数据迁移到新的系统数据库(哪里表名和列不同于旧系统 - 需要映射表和列)?最佳数据库迁移方法?

1)是否应该是数据库到数据库(意味着编写脚本从旧数据库中提取数据并仔细映射它们并将其放入新的数据库)?在这之上写单元测试来检查整数。

(OR)

2)我应该使用新的系统模型(使用Java持久性API)程序提取旧数据库中的数据,然后把它放在对象(Hibernate或者JPA实体对象),并坚持他们吗?

回答

4

与第一个一起去。这就是ETL工具的诞生。

我不会推荐编写一个Java程序。开发和测试一次性使用会花费很大的努力。使用正确的工具来完成这项工作。

+0

+1,ETL工具是为了一个很好的理由而编写的。 – Ollie 2012-07-11 10:19:46

+1

确实如此,如果原始数据存储很大,那么没有持久性工具就能够在数据库迁移工具上花费时间。 – DataNucleus 2012-07-11 10:33:12

+0

对不起,我并不是说为了这个目的创建全新的实体。实际上,我们已经为我们的新系统建立了模型,所以想着使用新系统模型来填充旧系统中的提取数据并坚持是否是一个好主意?但是,我认为DataNucleus认为数据库到数据库方法的性能会更高。 – 2012-07-11 11:38:46

2

我目前正在做一个从MySQL到Oracle的数据迁移,我发现最好遵循这个过程。

  1. 转储旧的数据库结构和新的数据库系统
  2. 上重新创建它指定使用旧的结构,这两个系统
  3. 导入旧数据到新的系统中的数据地图。
  4. 创建新的数据库结构。
  5. 编写SQL语句,将您的数据从旧结构导入新结构。

这将最大限度地减少您可能遇到的任何数据完整性问题和数据映射问题。