0

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

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

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

为了获得更具体的细节是:

  • SQL Server 2008 R2
  • 大约 30 个表中约 200 万行 -> 约 20 个表
  • 每个数据库都将位于具有不同凭据的完全独立的数据库服务器上

非常感谢

4

1 回答 1

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 进行更新插入(我们正在谈论 20 个表)。这是你要找的吗?

于 2012-07-01T12:39:01.157 回答