选择数据库引擎升级方法

适用于: 是SQL Server(所有支持的版本) - 仅限 Windows

当为了最小化停机时间和风险而计划将 数据库引擎 从 SQL Server 的先前版本进行升级时,有几种方法可以考虑。 你可以执行就地升级、迁移到新安装或者执行滚动升级。 下面的图表将帮助你在这些方法中进行选择。 图表中的每个方法也会在下面进行讨论。 为了有助于你了解图表中的决策点,也请查阅 计划并测试数据库引擎升级计划

数据库引擎升级方法决策树

下载

  • 若要下载 SQL Server,请转到 评估中心

  • 已经拥有 Azure 帐户? 然后转到 此处 启动装有 SQL Server 开发人员版的虚拟机。

备注

你也可以考虑升级 Azure SQL 数据库或虚拟化 SQL Server 环境作为你升级计划的一部分。 这些文章已超出本文的范围,但这里有一些链接:

就地升级

使用此方法时,SQL Server 安装程序会通过将现有的 SQL Server 位替换为新的 SQL Server 位来升级现有的 SQL Server 安装,然后升级每个系统和用户数据库。 就地升级方法是最简单的,需要一定的停机时间,如果需要进行回退的话,则会花费更长时间进行回退操作,且并非所有方案都支持这一方法。 有关支持和不支持就地升级方法的方案详细信息,请参阅 支持的版本升级

这种方法经常用于以下方案:

  • 不需要高可用性 (HA) 配置的开发环境。

  • 能够容忍停机时间且在最新的硬件和软件上运行的非任务关键生产的环境。 停机时间量取决于你的数据库大小和 I/O 子系统速度。 在内存优化表处于使用中时升级 SQL Server 2014 会耗费一些额外时间。 有关详细信息,请参阅 计划并测试数据库引擎升级计划

备注

有关 Microsoft 如何使用此策略的示例,请参阅以下博客文章:是否升级

警告

在运行 SQL Server 安装程序时,作为运行预升级检查的一部分,将停止并重启 SQL Server 实例。

注意

在升级 SQL Server后,早期的 SQL Server 实例将被覆盖,在计算机中不再存在。 因此在升级前,请备份 SQL Server 数据库以及与早期的 SQL Server 实例相关的其他对象。

以下图表提供了 数据库引擎就地升级所需步骤的高级概述。

数据库引擎升级非 HA 就地升级

有关详细步骤,请参阅使用安装向导(安装程序)升级 SQL Server

迁移到新安装

使用此方法时,你需要在建立新的 SQL Server 环境的同时,在新硬盘上使用新版操作系统频繁地维护当前环境。 在新环境中安装 SQL Server 后,执行若干步骤来准备新环境,以便你能够从现有环境将现有的用户数据库迁移到新环境并且最小化停机时间。 这些步骤包括迁移下列对象:

  • 系统对象: 某些应用程序依赖于单个用户数据库范围之外的信息、实体和/或对象。 通常,应用程序具有对 master 和 msdb 数据库的依赖关系,并且还具有对用户数据库的依赖关系。 用户数据库正确运行所需的存储在该数据库外部的任何内容必须在目标服务器实例上可用。 例如,应用程序的登录名作为元数据存储在 master 数据库中,你必须在目标服务器上重新创建这些登录名。 如果应用程序或数据库维护计划依赖于 SQL Server 代理作业(其元数据存储在 msdb 数据库中),则必须在目标服务器实例上重新创建这些作业。 同样,服务器级触发器的元数据存储在 master 中。

将应用程序的数据库移动到其他服务器实例时,必须在目标服务器实例的 master 和 msdb 中重新创建依赖实体和依赖对象的所有元数据。 例如,如果数据库应用程序使用服务器级触发器,则仅在新系统上附加或还原数据库是不够的。 如果不手动在 master 数据库中重新创建这些触发器的元数据,则数据库不能按预期方式工作。 有关详细信息,请参阅当数据库在其他服务器实例上可用时管理元数据 (SQL Server)

  • 存储在 MSDB 中的 Integration Services 包: 如果要在 MSDB 中存储包,需要使用 dtutil Utility 编写这些包的脚本或者将其重新部署到新服务器。 在新服务器上使用包之前,需要将包升级到 SQL Server。 有关详细信息,请参阅 升级 Integration Services 包

  • Reporting Services 加密密钥: 报表服务器配置的一个重要部分是为用于加密敏感信息的对称密钥创建备份副本。 该密钥的备份副本对许多例程操作来说是必需的,通过使用备份副本,您可以在新的安装中重用现有报表服务器数据库。 有关详细信息,请参阅 备份和还原 Reporting Services 加密密钥升级和迁移 Reporting Services

新的 SQL Server 环境有了与现有环境相同的系统对象后,则可立即以最小化现有系统的停机时间的方式从现有系统将用户数据库迁移到 SQL Server 实例。 使用备份和还原完成数据库迁移,或者如果你处于 SAN 环境下,则通过重构 LUN 来完成数据库迁移。 两种方法的步骤如以下图表中所述。

注意

停机时间量取决于你的数据库大小和 I/O 子系统速度。 在内存优化表处于使用中时升级 SQL Server 2014 会耗费一些额外时间。 有关详细信息,请参阅 计划并测试数据库引擎升级计划

迁移用户数据库之后,可使用多种方法中的一种将新用户指向到新的 SQL Server 实例(如重命名服务器、使用 DNS 条目、修改连接字符串)。 与就地升级相比,新的安装方法可以降低风险和停机时间,并可有助于同时完成操作系统的升级和升级到 SQL Server。

备注

如果已有到位的高可用性 (HA) 解决方案或其他的多 SQL Server实例环境,请转到 滚动升级。 如果没有到位的高可用性解决方案,则可以考虑临时配置 数据库镜像 以进一步最小化停机时间从而简化此升级,或者利用这个机会配置 AlwaysOn 可用性组 作为永久的 HA 解决方案。

例如,可以使用这种方法来升级:

  • 在不受支持的操作系统上安装 SQL Server 。
  • 由于 SQL Server 2016 (13.x) 及更高版本不支持 x86 安装,请安装 x86 的 SQL Server。
  • SQL Server 到新硬件和/或操作系统新版本。
  • SQL Server 结合服务器合并。
  • 由于 SQL Server 2016 (13.x) 及更高版本不支持就地升级 SQL Server 2005,请使用 SQL Server 2005。 有关详细信息,请参阅是否正在从 SQL Server 2005 进行升级

新的安装升级所需的步骤根据你是否在使用连接存储或 SAN 存储而存在少许差异。

  • 连接存储环境: 如果具有使用连接存储的 SQL Server 环境,可通过以下图表和图表内的链接完成 数据库引擎 的新安装升级所需执行的步骤。

    使用备份和还原附加存储的新安装升级方法

  • SAN 存储环境: 如果具有使用 SAN 存储的 SQL Server 环境,可通过以下图表和图表内的链接完成 数据库引擎 的新安装升级所需执行的步骤。

    使用拆离和附加 SAN 存储的新安装升级方法

滚动升级

在涉及多个 SQL Server 实例(这些实例必须以特定顺序进行升级以最大化运行时间、最小化风险和保留功能)的 SQL Server 解决方案环境中,需要执行滚动升级。 滚动升级实质上是多个 SQL Server 实例按特定顺序进行的升级,此方法在每个现有 SQL Server 实例上执行就地升级,或者执行新安装升级作为升级项目的一部分来简化硬件和/或操作系统的升级。 在很多方案中你都需要使用滚动升级方法。 以下文章中记录了这些方案:

后续步骤

计划并测试数据库引擎升级计划
完成数据库引擎升级