将Oracle 10g数据库迁移到Microsoft SQL 2008 R2的最佳实践是什么?应用程序正在使用Hibernate

| 标题基本上是怎么说的。展望未来,我们需要开始支持两个数据库平台(并将开始相应地编写迁移),但是我们需要做第一个初始的“端口”。 我们的DBA确信他们可以转换模式,表,数据类型等,但是我们的开发人员对DAO将“正常工作”的信心较小。有人可以指出我们可以回顾的一些资源吗?理想情况下,避免常见的陷阱,要运行的特定测试等。我们当然会在应用程序层运行全套数据库测试,但在此之前要做尽可能多的准备。     
已邀请:
注意并在负载下测试性能。 Oracle在某些方面的工作与其他数据库供应商的根本不同。汤姆·凯特(Tom Kyte)的出色著作《专家Oracle数据库体系结构》指出了一些差异。一些要点: Oracle从不锁定数据来读取数据。许多其他数据库也可以。 Oracle中的数据编写者永远不会阻塞读者。数据读取者永远不会阻止写入者。同样,许多其他厂商也这样做。 锁定问题浮出水面时,不注意此类事情会在转换后引起很大的麻烦。这并不意味着一种产品相对于另一种产品的优越性,而是意味着与某家供应商的产品良好配合的产品在另一种产品中可能会惨败,并且可能需要根据数据库定制方法。     
同上(尽管要说的很简单)。 “刚刚工作”。休眠魔术。 我很安心,因为我们对DAO层拥有100%的测试覆盖率。因此,当在MS SQL上重新创建架构,并且在映射中更新了一些表名和列名时(不记得为什么,但是DBA要求这样做,可能是命名约定),我们只是运行测试,没有发现失败的测试。 附言回顾一个有趣的细节:功能测试都可以。但是,当PTE在MS SQL数据库上启动时,我们发现由于锁的传播,对一个特定表的并发访问比在Oracle上慢。我们不得不重新设计该功能。     
我认为第一步是获取一个空的MS SQL模式,使用ѭ0并让Hibernate在此处创建表。然后将其显示给您的DBA,并询问是否有意义。 填充数据的问题不大,我想查询会比较麻烦(特别是如果您在某些地方使用原始JDBC)。您可能还需要检查常用查询的查询计划,并查看它们是否也有意义。     

要回复问题请先登录注册