【问题标题】:Database data migration数据库数据迁移
【发布时间】:2012-06-30 22:38:24
【问题描述】:

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

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

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

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

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

非常感谢

【问题讨论】:

    标签: sql-server-2008


    【解决方案1】:

    让我们假设这种情况:

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

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

    【讨论】:

    • 在玩过这个之后看起来是最可行的方法。没有我希望的那么容易,但仍然有效
    猜你喜欢
    • 2011-01-28
    • 2014-01-13
    • 2018-03-04
    • 2014-08-24
    • 2017-09-12
    • 2016-05-10
    • 1970-01-01
    相关资源
    最近更新 更多