【问题标题】:Database migration数据库迁移
【发布时间】:2011-01-28 03:06:04
【问题描述】:

我们正在将客户自己的数据库架构迁移到我们自己的(都是 SQL-Server)。如果列不完全对齐(默认值等),从他们的架构到我们的架构的大多数映射都已被识别,并且规则已达成一致

以前,根据分配任务的人员,这可以通过混合使用 sql 脚本或一次性 vb 应用程序来完成。

我在想必须有一个应用程序(商业或其他),您可以在其中分配这些映射/规则并让它流式传输数据。这个工具的设置和配置肯定比创建临时脚本要少...

有应用吗?除了明显的“小心”之外,还有什么技巧可以减轻非 DBA 将一个模式移植到另一个模式的压力?

【问题讨论】:

    标签: sql-server-2005 database-migration


    【解决方案1】:

    不是真的。问题是,无论如何,您拥有的任何应用程序都将更像是一个框架。根据定义,模式传输有些棘手。做一半事情的工具几乎是无用的——无论如何,这在 SQL 中很容易做到;)

    【讨论】:

      【解决方案2】:

      我每天都在做这种事情。由于我们软件的自定义性质,我通常一次性完成整个事情。大约 70% 的时间,我使用 ms 访问作为中介(其余时间,我编写代码来做这件事)。我将源数据加载到 ms 访问中,对其进行按摩,然后将其移动到我们的 sql server 表中。访问非常适合这种类型的工作。要注意的主要事情是您的密钥和重复限制。我确信有现成的应用程序可以进行数据迁移,但我需要更多的控制权,并且 ms 访问允许我重用数据导入的某些部分,同时保持自定义所有内容的能力。

      最好的问候, 不要

      【讨论】:

        【解决方案3】:

        您可以在代码中使用数据库迁移。

        有几个受 ruby​​ 迁移启发的 .net 数据迁移库。他们在代码中定义数据库更改。

        迁移允许开发人员以受控且一致的方式管理数据库架构更改的推出和回滚。

        看看这些:

        【讨论】:

        • 这些中的大多数是否支持架构的大规模更改?没有一个表名映射(例如:我们都有一个前缀),不同的字段名(有些是复数,有些不是)。
        • 您几乎可以定义一个 updown 脚​​本来进行更改 - 它会尽可能全面。如果这是问题的话,它们不会自动更改存储过程深处的列名。
        • RikMigrations(尽管有名字)似乎是列出的最佳选择。
        • 无存储过程 - 只是将数据从一个模式连接到完全不同的模式,并且能够在需要的地方指定默认值并可能进行一些计算(N/E 到 Lat/Lon 等)。
        • @graham.reeds - 抱歉,我不知道非常大的迁移,我自己从来没有做过,但原则上它们应该可以工作。
        【解决方案4】:

        我使用名为 Talend Open Studio 的开源 ETL(提取/转换/加载)工具来完成此类任务。

        简而言之,Talend Open Studio (TOS) 是一种 GUI 代码生成工具,您可以在其中插入不同的组件来导入、处理和导出数据 - 生成的代码是可移植的 Java 或 Perl。有很多组件可以帮助您对非标准数据做出决定(或者您始终可以为最复杂的部分添加自己的 Java 或 Perl 例程)。

        事实证明,我最初在 TOS 上投入的时间非常值得……所以我肯定会推荐它。

        【讨论】:

        • 嗯。我们是一家微软商店,所以 java/perl 可能有点难驾驭。
        • 我的公司也非常以 Microsoft 为中心......但现在几乎不可能避免在某处使用一些 Java。在我们的案例中,使用 java.exe 命令行从 Talend 运行 JAR 非常容易,甚至可以从我们基于 Windows 的作业控制软件中运行。但当然是 YMMV ;)
        【解决方案5】:

        试试SQL Data Examiner。 此工具允许比较/同步 sql 查询结果,因此您可以向两个数据库编写适当的查询并比较/同步这些查询返回的结果。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-03-04
          • 2014-08-24
          • 2017-09-12
          • 2016-05-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多