升级服务器实例时,最小化镜像数据库的停机时间

将服务器实例升级到 SQL Server 2014 时,可以通过执行称为 滚动升级的顺序升级,将每个镜像数据库的停机时间减少到单个手动故障转移。 滚动升级是一个多阶段过程,其最简单的形式包括升级当前充当镜像会话中的镜像服务器的服务器实例,然后手动故障转移镜像数据库、升级以前的主体服务器和恢复镜像。 实际上,确切的过程将取决于运行模式以及正在升级的服务器实例上运行的镜像会话的数量和布局。

注释

有关执行滚动升级以安装 Service Pack 或修补程序的信息,请参阅 在系统上安装 Service Pack,同时尽量缩短镜像数据库的停机时间

建议的准备(最佳做法)

在开始滚动升级之前,建议:

  1. 在至少一个镜像会话上进行手动故障转移操作:

    注释

    有关手动故障转移工作原理的信息,请参阅数据库镜像会话期间的角色切换(SQL Server)。

  2. 保护数据:

    1. 对每个主体数据库执行完整数据库备份:

      创建完整数据库备份(SQL Server)。

    2. 在每个主体数据库上运行 DBCC CHECKDB 命令。

滚动升级的阶段

滚动升级的具体步骤取决于镜像配置的运行模式。 但是,基本阶段相同。

注释

有关操作模式的信息,请参阅 数据库镜像操作模式

下图显示了每个作模式滚动升级的基本阶段的流程图。 图后将介绍相应的过程。

滚动升级步骤流程图

重要

服务器实例可能在并发镜像会话中执行不同的镜像角色(主体服务器、镜像服务器或见证服务器)。 在这种情况下,必须相应地调整基本滚动升级过程。 有关详细信息,请参阅数据库镜像会话期间的角色切换 (SQL Server)

将会话从高性能模式切换为高安全模式

  1. 在高性能模式下运行镜像会话时,在执行滚动升级之前,请将操作模式更改为高安全性且不带自动故障转移功能。

    重要

    如果镜像服务器在地理上与主体服务器相距很远,则滚动升级可能不合适。

从会话中删除证人

  1. 如果镜像会话涉及见证服务器,我们建议在执行滚动升级之前删除见证服务器。 否则,在升级镜像服务器实例时,数据库可用性取决于仍连接到主体服务器实例的见证服务器。 删除见证后,只要处于滚动升级过程中,您可以随时对其进行升级,而不会导致数据库停机风险。

    • 从数据库镜像会话中删除 Witness(SQL Server)

执行滚动升级

  1. 为了最大程度地减少停机时间,建议执行以下步骤:通过更新当前在所有镜像会话中作为镜像服务器的任何镜像伙伴服务器来启动滚动升级。 此时可能需要更新多个服务器实例。

    注释

    可以在滚动升级过程中的任何时刻升级见证节点。 例如,如果服务器实例是会话 1 中的镜像服务器,并且是会话 2 中的见证服务器,则可以立即升级服务器实例。

    首先要升级的服务器实例取决于镜像会话的当前配置,如下所示:

    • 如果任何服务器实例已是其所有镜像会话中的镜像服务器,请将服务器实例升级到新版本。

    • 如果所有服务器实例当前都是任何镜像会话中的主体服务器,请选择一个服务器实例以首先升级。 然后,手动故障切换其每个主体数据库,并升级该服务器实例。

    升级后,服务器实例会自动重新加入其每个镜像会话。

  2. 对于每个镜像服务器实例刚刚升级的镜像会话,请等待会话同步。 然后,连接到主体服务器实例,并手动故障转移会话。 故障转移时,升级的服务器实例将成为该会话的主体服务器,而以前的主体服务器将成为镜像服务器。

    此步骤的目标是让另一台服务器实例在其作为伙伴的每个镜像会话中成为镜像服务器。

    在故障转移到升级后的服务器实例后所产生的限制。

    从以前的服务器实例切换到 SQL Server 2014 服务器实例后,数据库会话将暂停。 在另一位合作伙伴升级之前,它无法继续。 但是,主体服务器仍接受连接并允许对主体数据库进行数据访问和修改。

    注释

    建立新的镜像会话要求服务器实例都运行同一版本的 SQL Server。

  3. 故障转移完成后,建议在主数据库上运行 DBCC CHECKDB 命令。

  4. 升级所有作为合作伙伴参与镜像会话的镜像服务器中的每个服务器实例。 此时可能需要更新多个服务器。

    重要

    在复杂的镜像配置中,某些服务器实例可能仍然是一个或多个镜像会话中的原始主体服务器。 对这些服务器实例重复步骤 2-4,直到升级涉及的所有实例。

  5. 恢复镜像会话。

    注释

    自动故障转移将不起作用,直到见证被升级并重新添加到镜像会话中。

  6. 升级任何仍未升级的服务器实例,该实例在其所有镜像会话中充当见证角色。 升级的见证服务器重新加入镜像会话后,自动故障转移将再次变得可能。 此时可能需要更新多个服务器。

切换会话到高性能模式

  1. (可选)使用以下方法之一返回到高性能模式:

    • 在 SQL Server Management Studio 中:使用“数据库属性”对话框的镜像页“作模式”选项更改为“高性能”(异步)。

    • 在 Transact-SQL 中:使用 ALTER DATABASE将事务安全设置为 OFF。

将见证人添加回镜像会话

  1. (可选)在高安全模式下,重新配置见证服务器到每个镜像会话中。

    返回证人

另请参阅

ALTER DATABASE 数据库镜像 (Transact-SQL)
BACKUP (Transact-SQL)
查看镜像数据库的状态(SQL Server Management Studio)
数据库镜像 (SQL Server)
在系统上安装 Service Pack,以尽量减少镜像数据库的停机时间
数据库镜像会话期间的角色切换 (SQL Server)
在数据库镜像会话中强制服务 (Transact-SQL)
启动数据库镜像监视器 (SQL Server Management Studio)
数据库镜像运行模式