将数据库从SQL 2005移动到2008 – 使用镜像或复制快速切换

我们有一些SQL 2005数据库正在运行,我想迁移到SQL 2008. 2008实例已经启动并正在运行。 推荐的方法是从一台服务器快速切换到另一台服务器。

我喜欢应用程序使用2005年,而交易也被推到2008年,让我事先设置。 然后,应用程序团队可以将其连接更改为2008实例,并开始testing和更新。 一切顺利的时候,我们可以打破任何机制在做转移和使用2008年。

我有点熟悉镜像和事务复制。 看来,镜像将起作用,但是我需要在正确的时间对镜像数据库失败。 2005年的数据库将是无法使用,我们将无法倒退,因为系统表将在2008年的格式。

复制似乎是不需要任何干预的更好的select – 但它似乎也有点复杂的细节,我可能不知道,可能会使这不工作。

谢谢

您无法testing镜像数据库,因为无法读取。

复制将允许您从订阅服务器读取,但复制不会复制所有内容。

另外, 正在更新的时候谈论应用程序团队“更改和更新”副本的非正统性。 应用程序团队应该testing和更新testing数据库,而不是生产更新的候选人…将会发生什么变化与传入更新stream不兼容?

典型的更新scheme是这样的:

  • 应用程序开发testing应用程序在新数据库上的旧模式上工作正常。 如果发现问题,则应用程序是固定的(数据库中没有模式更改)。
  • 如果需要架构更改,则会将其写为升级脚本,以便在部署新版本时实施。
  • 开发团队签署升级程序(所有应用程序修改和所有架构修改)
  • QA团队获取生产数据库的副本并validation是否可以升级应用程序,根据开发团队的build议在升级后应用所有二进制文件更改模式更改
  • QA团队签署升级程序
  • 运营团队准备升级。 使用镜像是一个很好的方法,但出于升级期间最小化停机时间的原因,并非出于您build议的validation应用程序的原因
  • 执行升级:
    • 取下应用程序
    • 对数据库进行故障转移(或者如果您希望有一条安全/快速的后退path,则会中断镜像)
    • 将架构更改脚本应用于新的数据库
    • 应用二进制补丁到应用程序
    • 启动新的数据库应用程序
    • 运行一些最小的validationtesting
    • 启用访问应用程序

对数据库执行冷备份,并像平常一样将它们还原到2008实例,以便testing应用程序团队是否会遇到兼容性问题。 一旦这样就可以使用镜像或日志传送来保持数据库的同步。 在您的计划停机时间停止LS /镜像,使旧数据库脱机,并恢复2008数据库,并让应用程序团队更改连接string或使用DNS别名切换到新的服务器。