数据库数据迁移

时间:2012-06-30 22:38:24

标签: sql-server-2008

我正在寻找关于这个的知识,因为我知道我可以得到我想要的东西,但我想知道这是否是最好的方法。由于项目蔓延,曾经是一个非常简单的应用程序的数据库变成了一个过于复杂的怪物,虽然它的工作管理并不容易。

我现在有机会从根本上重新开始,但是只是逐个地逐步将功能从旧应用程序迁移到新应用程序。这要求我保持新数据库与旧数据库同步,幸好只需要一种方法,因为不需要在需要迁移回来的新数据库上创建数据。

到目前为止考虑的选项是SSIS和使用普通旧C#ADO.Net的Quartz触发的Windows服务。我已经决定SSIS可能是一个坏主意,因为它可能是upsert的噩梦,需要创建临时表然后合并,并且架构差异相当广泛,因此SSIS逻辑将是一个令人头痛的问题。 ADO.Net方法是我倾向于的方向,因为数据读取器,批量插入和LINQ应该很好地完成工作。然而,考虑到在我之前必须有多少人,我认为必须有一个更好的方法。你们用什么方法?

为了更具体一点,细节是:

  • SQL Server 2008 R2
  • 在大约30个桌子上
  • ~200万行 - > 〜20 表格
  • 数据库将分别位于完全独立的数据库服务器上 使用不同的凭据

非常感谢

1 个答案:

答案 0 :(得分:1)

让我们讨论这个场景:

S_old: your 'old' server
S_new: your 'new' server
db_old: your 'old' database
db_new: your 'new' database

解决方案可能是db_old备份,并从s_old恢复到s_new:db_old_bk。然后,在s_new中,您可以访问这两个数据库(db_old_bkdb_new)此时您可以轻松地在t-sql上使用'merge'sqlcommand'进行upsert(我们正在谈论20表)。这是你要找的吗?