【问题标题】:Checking database acting as mirror检查数据库作为镜像
【发布时间】:2020-03-19 07:57:57
【问题描述】:

在我的 VB.NET 应用程序中,我正在针对 SQL Server 视图执行一些简单的 SELECT。该视图位于我们本地 SQL Server 上的两个链接服务器连接上。

两个链接的服务器不时更改其主/镜像行为。所以在我的应用程序中,我不知道哪些服务器实际上是主服务器。

目前我触发查询并捕获类似于:“数据库正在充当镜像”的 sqlexception,如果我收到此异常,我会更改连接并执行两次查询。

有没有办法在发起查询之前检查服务器的状态?

【问题讨论】:

    标签: sql-server vb.net


    【解决方案1】:

    您可以通过使用系统表sys.database_mirroring 来检查您的数据库是Mirror 还是Principal

    接下来:-

    DECLARE @MirroringRole int;
    SET @MirroringRole = (SELECT mirroring_role
        FROM sys.database_mirroring
        WHERE DB_NAME(database_id) = N'DB_X');   -- your database name here
    IF @MirroringRole = 2 -- Mirror
        -- connect to other server, other database
    ELSE IF @MirroringRole = 1 -- Principal
        -- connect to this server, this database >> DB_X
    END IF
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多