65.9K
CodeProject 正在变化。 阅读更多。
Home

精确、可重复的数据迁移流程

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2005年10月20日

5分钟阅读

viewsIcon

27405

结合使用 iScala、SQL Server 和 Red Gate 的软件工具来管理数据流程。

引言

Leggett & Platt 更新其 SQL Server 的新流程使公司能够更多地专注于所需的更新和 Visual Basic 代码,而不是反复检查脚本和进行修复。

下载 Red Gate SQL Server 工具的完整功能免费试用版

为福特、星巴克、塔吉特、索尼和莱尔等客户管理 20 多个国家/地区的账户,对于像 Leggett & Platt 这样价值 51 亿美元的公司来说,这是一项艰巨的任务。为了实现任务自动化并减少错误,该公司结合使用了 iScala、SQL Server 和 Red Gate 的软件工具来管理其数据流程。

Leggett & Platt 设计和生产工程化组件,例如商店展示架、家居家具产品和钢管,为全球客户服务。该公司多元化的运营涉及多种语言和货币,每个公司分支都需要其数据库程序具备特定的功能。因此,Leggett & Platt IT 部门决定实施一个名为 iScala 的企业资源规划 (ERP) 系统。iScala 使用当地语言和货币处理国际分支机构的日常业务——例如销售订单、库存跟踪和制造等任务。

Leggett & Platt 创建了一套名为 LPScala 的自定义程序,以补充 iScala 并处理诸如工资单应用程序之类的内部需求。LPScala 还将总账信息传输回公司总部,加载到财务规划系统中。LPScala 和 iScala 都与 Microsoft 的 SQL Server 接口,将从程序中获取的所有数据写入 SQL 数据库。

更新:繁琐且耗时

Leggett & Platt 拥有大约 20 个 SQL Server 来处理国际设施用于日常业务的数据。每个服务器托管大约五个数据库。Leggett & Platt 公司位于密苏里州卡特奇格的总部有两名训练有素的 SQL Server DBA,随时准备处理可能出现的任何问题。

跨各地点更新这些数据库曾是 Leggett & Platt 开发人员的一项艰巨任务。他们必须手动创建 SQL 语句并将其捆绑到 InstallShield 应用程序中。InstallShield 文件在每个地点运行,其中一个 Visual Basic 应用程序创建数据库,另一个执行 SQL 脚本创建数据库对象,还有一个命令行可执行文件将数据导入表中。这些手工编写的脚本留下了许多出错的可能性。

除了降低出错的可能性外,Leggett & Platt 还希望确保他们为每个数据库创建的 .NET 应用程序可以由每个分支的员工执行,即使是那些 SQL 经验有限的人。此外,确保数据库和核心数据得到正确更新也至关重要。

精确、可重复的流程

对 Leggett & Platt 来说,最佳解决方案是重新设计其整个数据迁移流程。该公司现在使用 Red Gate Software 的 SQL Toolkit 来创建可重复的数据库更新流程。SQL Toolkit 包括 Red Gate 的 SQL Compare、SQL Data Compare 和 SQL Packager 软件,以及直接通过命令行或原生从另一个应用程序编程到 API 的能力。

Leggett & Platt 项目经理 Dustin Franks 表示:“我们的国际 IT 部门规模很小,工作量非常大。要花时间彻底检查 SQL 语句以确保它们都能在分支机构端正常工作,这非常困难。SQL Toolkit 的检查和平衡系统消除了担忧和猜测。”

Franks 和他的团队首先使用 SQL Compare 拍摄生产数据库的快照,包括所有数据表。然后,SQL Compare 会识别开发和生产之间哪些表已更改,并生成脚本来更新生产数据库的结构。在开发数据库中的所有表和架构更改都已完成、测试并最终确定后,数据库将被移至生产环境。

为了在远程站点进行部署,Franks 结合使用 SQL Packager 和 InstallShield 创建一个可执行文件。SQL Packager 创建一个包含数据的最终 SQL 数据库表的 .exe 文件,该文件将在客户站点分发,保留数据库结构以及表中所有的依赖项。依赖项包括 Leggett & Platt 为用户类型定义建立的语言条目、安全项和菜单。

SQL Packager 首先引导用户选择新数据库的架构和数据,然后生成用于保留依赖项的脚本。在最后一步,该工具会自动打包一个可执行文件或 .NET 项目,创建一个易于安装的实用程序。

然后,Franks 和他的团队为每次更新编写一个 .NET 应用程序,该应用程序将在客户站点启动。该 .NET 代码将把 SQL Packager 创建的数据库与 Leggett & Platt 分支机构当前使用的数据库进行比较,并生成更新分支机构数据库架构所需的脚本。

为了创建用于远程部署的最终文件,SQL Compare 快照、SQL Packager 可执行文件以及手动编写的 .NET 应用程序将与 InstallShield 一起编译。

支持得到提升

一旦在客户端部署,InstallShield 应用程序将根据 SQL Packager 文件创建一个干净的数据库,用于数据同步。然后,.NET 应用程序使用 Red Gate 的 SQL Data Compare 将 InstallShield 的数据库快照与现有数据进行比较,生成一个概述两个数据库之间差异的脚本。然后执行该脚本,将分支机构的数据更新为与 SQL Packager 可执行文件中的记录匹配,从而能够在不擦除现有数据的情况下更新本地数据库。

Franks 表示:“使用 SQL Compare,如果一个数据库事务失败,所有事务都会失败。数据库将被回滚到一个干净的数据库。我们以前不得不使用一个特殊的版本来修复不完整的数据库,或者手动删除记录并重新运行安装。”

通过实施 iScala 和 Red Gate 工具,Leggett & Platt 对客户数据库的 IT 支持得到了急需的提升。人数不多但工作量繁重的工作人员现在可以更多地专注于所需的更新和 Visual Basic 代码,而不是反复检查脚本和进行修复。

更多信息

有关 SQL Toolkit 和 Red Gate Software 其他产品的更多信息,请访问我们的 网站

要了解 SQL Toolkit 如何同样适用于您,请下载一个功能齐全的 14 天试用版

© . All rights reserved.