2012-06-30 249 views
0

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

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

迄今为止考虑的选项是SSIS和一个Quartz触发的使用普通C#ADO.Net的windows服务。我认为SSIS可能是一个坏主意,因为它可能是一个带有upserts的噩梦,需要创建临时表,然后进行合并,并且模式差异非常广泛,所以SSIS逻辑将是一个令人头疼的问题。 ADO.Net方法是我倾向于作为数据读取器的方向,批量插入和LINQ应该很好地完成这项工作。然而,考虑到在我之前必须有多少人受到影响,我认为必须有更好的方法。你们用什么方法?

为了得到更多的具体细节是:

  • SQL Server 2008 R2的
  • 〜2万行了约30桌 - >〜20个 表
  • 数据库每个人都可以在完全单独的数据库服务器 与不同的凭据

非常感谢

回答

1

让supose这样的场景:

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

的溶液可以一nighly db_old备份和恢复s_old到s_new:db_old_bk。然后,在s_new中,您可以访问两个数据库(db_old_bkdb_new)。此时,您可以轻松地在t-sql上使用'merge'sqlcommand进行插入操作(我们正在讨论20个表格)。这是你在找什么?

+0

好好玩完这个看起来像最可行的方法。虽然没有我期望的那么容易,但却很有效 – Hawxby