如何在升级服务器实例时最大限度地减少镜像数据库的停机时间

当将服务器实例从 SQL Server 2005 升级到 SQL Server 2008 时,您可以通过按顺序进行升级(称为“滚动升级”)将每个镜像数据库的停机时间减少为只进行一次手动故障转移的时间。滚动升级是一个多阶段过程,其最简单的形式如下:升级当前在镜像会话中充当镜像服务器的服务器实例,然后对镜像数据库进行手动故障转移,升级以前的主体服务器,恢复镜像。实际上,确切过程将取决于运行模式以及在所升级的服务器实例上运行的镜像会话的编号和布局。

注意注意

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

建议的准备工作(最佳实践)

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

  1. 至少对一个镜像会话执行实际手动故障转移:

    注意注意

    有关手动故障转移工作原理的信息,请参阅手动故障转移

  2. 保护数据:

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

      如何备份数据库 (SQL Server Management Studio)

      如何创建完整数据库备份 (Transact-SQL)

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

滚动升级的阶段

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

下图是显示各个运行模式的滚动升级基本阶段的流程图。该图后面的内容介绍了对应的步骤。

显示滚动升级步骤的流程图

重要说明重要提示

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

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

从会话中删除见证服务器

执行滚动升级

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

    注意注意

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

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

    • 如果任何服务器实例在其所有镜像会话中均已为镜像服务器,则将此服务器实例升级为新版本。

    • 如果在任何镜像会话中所有服务器实例当前都是主体服务器,则选择一个要首先升级的服务器实例。然后,对其每个主体数据库进行手动故障转移并升级该服务器实例。

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

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

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

    在出现故障时转移到已升级的服务器实例后的限制。

    在 SQL Server 2005 服务器实例出现故障时转移到 SQL Server 2008 服务器实例后,数据库会话将挂起。直到升级完其他伙伴后,此会话才能继续。但主体服务器仍然接受连接,并允许对主体数据库进行数据访问和修改。

    注意注意

    如果建立新镜像会话,则要求所有服务器实例运行相同版本的 SQL Server。

  3. 故障转移后,建议对主体数据库运行 DBCC CHECKDB 命令。

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

    重要说明重要提示

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

  5. 继续镜像会话。

    注意注意

    升级完见证服务器并将其重新添加到镜像会话中之后,自动故障转移功能才会起作用。

  6. 升级在其所有镜像会话中为见证服务器的任何剩余服务器实例。在已升级的见证服务器重新加入镜像会话之后,自动故障转移功能将重新变为可用。此时,可能需要更新多个服务器。

将会话恢复为高性能模式

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

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

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

将见证服务器重新添加到镜像会话中