在系统上安装 Service Pack 并且尽量缩短镜像数据库停机时间

本主题介绍了如何在安装 Service Pack 和修补程序时尽量减少镜像服务器的停机时间。 此过程涉及按顺序升级参与数据库镜像的 SQL Server 2012 实例。 这种称作“滚动更新”的更新形式将停机时间减少到只进行一次故障转移的停机时间。 请注意,对于镜像服务器与主体服务器在地理位置上有一定距离的高性能模式会话而言,滚动更新可能不适合。

滚动更新是包含下列阶段的一个多阶段过程:

  • 保护数据。

  • 如果会话包括见证服务器,建议您删除见证服务器。 否则,在更新镜像服务器实例时,数据库可用性将取决于仍然连接至主体服务器实例的见证服务器。 删除见证服务器之后,可以在滚动更新过程中随时对其进行更新,而不会有数据库停机的风险。

    注意注意

    有关详细信息,请参阅仲裁:见证服务器如何影响数据库可用性(数据库镜像)

  • 如果会话在高性能模式下运行,则将运行模式更改为高安全模式。

  • 更新数据库镜像中涉及的每个服务器实例。 滚动更新包括升级当前作为镜像服务器的服务器实例,对其每个镜像数据库进行手动故障转移以及升级最初作为主体服务器(现在作为新镜像服务器)的服务器实例。 此时,必须继续镜像。

    注意注意

    在开始滚动更新之前,建议您至少对一个镜像会话执行实际手动故障转移。

  • 如有必要,则恢复为高性能模式。

  • 如有必要,则将见证服务器返回镜像会话。

下面将介绍各个阶段的过程。

重要说明重要提示

在并发镜像会话中,一个服务器实例可能扮演不同的镜像角色(主体服务器、镜像服务器或见证服务器)。 在这种情况下,必须相应地调整基本滚动更新过程。

在更新之前保护数据(最佳做法)

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

    备份数据库

  2. 在每个主体服务器上运行 DBCC CHECKDB 命令。

从会话中删除见证服务器

将会话从高性能模式更改为高安全模式

执行滚动更新

  1. 为了最大限度地减少停机时间,我们建议:通过更新任何当前在其所有镜像会话中均为镜像服务器的镜像伙伴,开始滚动更新。 此时,可能需要更新多个服务器实例。

    注意注意

    在滚动更新过程中可以随时更新见证服务器。 例如,如果某个服务器实例在会话 1 中为镜像服务器,在会话 2 中为见证服务器,则可以立即更新此服务器实例。

    要首先更新的服务器实例是由镜像会话的当前配置决定的,如下所示:

    • 如果有任何服务器实例已经是其所有镜像会话中的镜像服务器,则在该服务器实例上安装 Service Pack 或修补程序。

    • 如果在任何镜像会话中所有服务器实例当前都是主体服务器,则选择一个服务器实例首先更新。 然后,对其每个主体数据库进行手动故障转移,并通过安装 Service Pack 或修补程序来更新该数据库实例。

    更新完成后,服务器实例将自动重新加入其每个镜像会话。

    执行手动故障转移

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

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

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

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

  4. 对于在其作为伙伴的所有镜像会话中目前为镜像服务器的每个服务器实例,在该服务器实例上安装 Service Pack 或修补程序。 此时,可能需要更新多个服务器。

    重要说明重要提示

    在复杂的镜像配置中,某个服务器实例在一个或多个镜像会话中可能仍作为原始主体服务器。 对这些服务器实例重复步骤 2-4,直至涉及的所有实例均已更新。

  5. 继续镜像会话。

    注意注意

    更新完见证服务器后,自动故障转移功能才会起作用。

  6. 对于在其所有镜像会话中为见证服务器的任何剩余服务器实例,在该服务器实例上安装 Service Pack 或修补程序。 在已更新的见证服务器重新加入镜像会话之后,自动故障转移功能将重新变为可用。 此时,可能需要更新多个服务器。

将会话恢复为高性能模式

  • 可以选择使用下列方法之一返回高性能模式:

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

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

将见证服务器返回镜像会话

请参阅

任务

启动数据库镜像监视器 (SQL Server Management Studio)

查看镜像数据库的状态 (SQL Server Management Studio)

参考

ALTER DATABASE 数据库镜像 (Transact-SQL)

BACKUP (Transact-SQL)

概念

数据库镜像 (SQL Server)

数据库镜像运行模式

数据库镜像会话期间的角色切换 (SQL Server)