【发布时间】:2014-09-22 00:32:31
【问题描述】:
我正在进行一个项目,该项目将一些旧版 SQL Server 2000 实例迁移到 SQL Server 2012。当您阅读 legacy 一词时,这些数据库被一些基于 VB 的桌面应用程序使用。它拥有大约 4000 多个用户,应用程序被评为 GOLD(意味着它必须 24x7 全天候运行)
再次总结
- 桌面 exe 安装的 VB 应用程序 -> SQL Server 2000
目标状态
- 桌面 exe 安装的 VB 应用程序 -> SQL Server 2012
应用程序使用包含它连接到的 SQL Server 详细信息的配置文件。因此,一旦数据移动到新的 SQL Server,就需要使用新的服务器详细信息更改此配置文件。
有人告诉我 SQL Server 2000 不能直接迁移。应该是先上SQL Server 2008,再上SQL Server 2012。如果理解不正确,请指正?
我的问题是在生产中执行此任务的计划。我不能一次性迁移所有用户,这意味着我将首先迁移 100 个用户,然后再迁移其他数百个用户,最后全部离开。这意味着一些用户可能会开始使用 SQL Server 2012,而其他用户仍在使用 SQL Server 2000。我不想一次性完成所有事情的原因是因为万一出现任何故障风险太大,而且因为应用程序必须 24x7 运行,所以这是不可能的关闭应用程序并更新每个用户桌面上的配置文件。
但是如果我允许 2000 和 2012 一起运行(比如 1 周,直到所有用户移动),这将使这些数据库不同步,我认为它们以后不能合并,因为两个数据库可能具有相同的主键分配给不同的数据。
我无法关闭应用程序并中断 4 小时以让所有用户一次性迁移到新数据库,因为应用程序必须 24x7 全天候运行。
任何人都可以推荐任何一种公司通常采用的方法来迁移 SQL Server 而不会像我上面所说的那样中断并保持数据一致性吗?
【问题讨论】:
-
由于需要进行中间更新,实际上没有任何办法可以解决中断问题,因为您已经正确地指出,不可能直接从 2000->2012 开始。跨度>
-
我可以在短时间内中断将 SQL 数据从 2000 年迁移到 2012 年(通过 2008 年)。但是,如果我不想一次性迁移所有用户,您认为我应该如何管理,因为我的生产团队想看看解决方案如何在几天内与一些用户一起工作,然后再迁移其余的用户。
-
这实际上更像是一个Server Fault 问题而不是Stack Overflow 问题。
标签: sql sql-server vb.net sql-server-2008