更新时间:2021-03-18 GMT+08:00
分享

主SQL Server故障时切换到备SQL Server

操作场景

业务端提供业务过程中发生故障,比如整体掉电、虚拟机故障、存储故障或网络异常等不能及时恢复时,主SQL Server数据库实例变为不可用。此时,备SQL Server数据库实例状态为只读,不能写入数据,即已建立容灾关系的两个SQL Server数据库不能自动切换来提供业务,需要手动切换,由容灾端提供业务。

需要指出的是,由于业务端和容灾端两个建立容灾关系的SQL Server数据库是通过日志传送方式进行异步复制,数据可能会有丢失,丢失的情况由配置业务端和容灾端容灾关系配置的策略决定。

操作步骤

  1. 确认容灾端的SQL Server上的数据库实例状态。

    以数据库实例test1为例,如图1所示,其状态为test1(Standby/Read-Only)

    右键单击test1 (Standby / Read-Only),选择“Refresh”,状态仍然为(Standby / Read-Only)

    图1 备SQL Server数据库实例状态(Read-Only)

  2. 运行脚本,升级容灾端上SQL Server的数据库实例为主数据库实例。

    右键单击数据库实例test1 (Standby / Read-Only),选择“New Query”,在弹出的输入框中输入脚本,然后选择“master”模式,单击“Execute”执行,如图2所示。

    图2 执行升级脚本

    脚本示例如下:

    USE [master]
    GO
    ALTER DATABASE [test1] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    GO
    restore database test1 with recovery
    
    GO
    ALTER DATABASE [test1] SET MULTI_USER

  3. 确认升级为主SQL Server成功。

    右键单击test1 (Standby / Read-Only),在菜单中选择Refreshtest1(Standby/Read-Only)变成test1,表示升级为主SQL Server成功。

后续操作

用户连接容灾端的SQL Server数据库,就可以提供业务。

相关文档