AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 276225
Accepted
RonJohn
RonJohn
Asked: 2020-09-29 16:02:13 +0800 CST2020-09-29 16:02:13 +0800 CST 2020-09-29 16:02:13 +0800 CST

可用性组侦听器和旧客户端软件

  • 772

我们有一个名为的多段 AG 侦听器SQLAGL01,它指向这两个地址: 10.143.162.32(主服务器) 10.140.165.32(DR 服务器)

因为第 3 方(这意味着我们无法修复它,并且不,我们无法迁移到其他东西)应用程序软件使用不支持的旧驱动程序,所以MultiSubnetFailover=True我们看到报告有一半时间失败的问题,因为SQLAGL01解决了DR 地址 10.140.165.32。

按照Microsoft 文档,我们设置RegisterAllProvidersIP=0并重新启动了集群。但是,SQLAGL01仍有一半时间解析为 DR 地址。

在Failover Cluster Manager中,AG Listener的owner节点为主服务器,DR地址为offline。(这正常吗?)

这是集群角色的屏幕截图: 在此处输入图像描述 编辑:增值RegisterAllProvidersIP。

PS C:\windows\system32> get-clusterresource "Cluster Name" | Get-ClusterParameter RegisterAllProvidersIP

Object       Name                   Value Type
------       ----                   ----- ----
Cluster Name RegisterAllProvidersIP 0     UInt32

编辑 2:添加了 AG 集群资源值。似乎没有RegisterAllProvidersIPAG Listener 的资源。 在此处输入图像描述

编辑 3:添加了实际的侦听器资源值。

PS C:\windows\system32> get-clusterresource KYHIXSQLAGL01_KYHIXSQLAGL01 | Get-ClusterParameter RegisterAllProvidersIP

Object                      Name                   Value Type
------                      ----                   ----- ----
KYHIXSQLAGL01_KYHIXSQLAGL01 RegisterAllProvidersIP 1     UInt32
availability-groups sql-server-2016
  • 2 2 个回答
  • 208 Views

2 个回答

  • Voted
  1. Best Answer
    AMtwo
    2020-09-30T08:05:41+08:002020-09-30T08:05:41+08:00

    在您的问题中,您包括以下检查以验证您是否已将其设置RegisterAllProvidersIP为 false:

    PS C:\> get-clusterresource "Cluster Name" | Get-ClusterParameter RegisterAllProvidersIP
    
    Object       Name                   Value Type
    ------       ----                   ----- ----
    Cluster Name RegisterAllProvidersIP 0     UInt32
    

    如果您使用了集群名称,那么您RegisterAllProvidersIP在错误的对象上设置了参数。

    您的屏幕截图中有几个名称相似的对象:

    • Windows 集群:WC01
    • 可用性组:AG01
    • AG 监听器:AGListener01

    要验证设置的配置方式,您应该使用侦听器名称而不是集群或 AG 名称:

    PS C:\> Get-ClusterResource AGListener01 | Get-ClusterParameter RegisterAllProvidersIP
    

    或者,要逐步执行此操作,您可以这样做Get-ClusterResource,您会看到如下内容:

    Name                         State   OwnerGroup     ResourceType
    ----                         -----   ----------     ------------
    10.10.10.199                 Online  Cluster Group  IP Address
    Cluster IP Address           Online  Cluster Group  IP Address
    Cluster Name                 Online  Cluster Group  Network Name
    AG01                         Online  AG01           SQL Server Availability Group
    AG01_10.10.20.138            Offline AG01           IP Address
    AGListener01                 Online  AG01           Network Name
    File Share Witness           Online  Cluster Group  File Share Witness
    IP Address 10.10.10.138      Online  AG01           IP Address
    

    在所有这些事情中,我们只关心属于 AG 的 OwnerGroup 的对象。我们可以进一步过滤Get-ClusterResource | Where OwnerGroup -eq AG01:

    Name                        State   OwnerGroup   ResourceType
    ----                        -----   ----------   ------------
    AG01                        Online  AG01         SQL Server Availability Group
    AG01_10.10.20.138           Offline AG01         IP Address
    AGListener01                Online  AG01         Network Name
    IP Address 10.10.10.138     Online  AG01         IP Address
    

    这 4 项代表构成我的 AG 的资源:AG 本身、侦听器(列为“网络名称”)和两个 IP 地址,每个地址位于不同的子网中。

    我要检查RegisterAllProvidersIP参数的项目是侦听器 (网络名称)资源:Get-ClusterResource AGListener01 | Get-ClusterParameter将为我提供侦听器对象的完整参数列表:

    Object        Name                   Value                            Type
    ------        ----                   -----                            ----
    AGListener01  Name                   AGListener01                     String
    AGListener01  DnsName                AGListener01                     String
    AGListener01  Aliases                                                 String
    AGListener01  RemapPipeNames         1                                UInt32
    AGListener01  HostRecordTTL          1200                             UInt32
    AGListener01  RegisterAllProvidersIP 1                                UInt32
    AGListener01  PublishPTRRecords      0                                UInt32
    AGListener01  ResourceData           {1, 0, 0, 0...}                  ByteArray
    AGListener01  StatusNetBIOS          0                                UInt32
    AGListener01  StatusDNS              0                                UInt32
    AGListener01  StatusKerberos         0                                UInt32
    AGListener01  CreatingDC             \\dc01.am2.co                    String
    AGListener01  LastDNSUpdateTime      9/29/2020 3:57:12 PM             DateTime
    AGListener01  ObjectGUID             abc1234def567890ab12cd3456ef7890 String
    AGListener01  DnsSuffix              am2.co                           String
    AGListener01  ADAware                1                                UInt32
    

    我可以通过明确要求获得特定参数Get-ClusterResource AGListener01 | Get-ClusterParameter RegisterAllProvidersIP

    Object        Name                   Value  Type
    ------        ----                   -----  ----
    AGListener01  RegisterAllProvidersIP 1      UInt32
    

    如果这未设置为 0,那么您将需要使用文档中概述的代码块,并确保您使用的是侦听器名称,而不是集群名称。该示例还建议设置 TTL(选择确切的数字取决于您,尽管文档建议 300 秒)。请注意,要通过 DNS 名称获取新设置,必须使侦听器脱机和联机:

    Get-ClusterResource AGListener01 | Set-ClusterParameter RegisterAllProvidersIP 0   
    Get-ClusterResource AGListener01 | Set-ClusterParameter HostRecordTTL 300  
    Stop-ClusterResource AGListener01 
    Start-ClusterResource AGListener01 
    

    完成此操作后(旧的 TTL 已过期),您将能够看到 Lister 仅配置了一个 IP 地址:

    Resolve-DnsName AGListener01 
    
    • 2
  2. KASQLDBA
    2020-09-29T17:13:52+08:002020-09-29T17:13:52+08:00

    我相信您正在设置多子网故障转移集群。那可能是您在一个站点上有主站点,而在另一个站点上有 DR。

    如果是这种情况,据我所知,其他子网 IP 将始终显示脱机。

    此外,我不确定您是否尝试手动联机并收到该错误。如果您可以使用多子网设置更新您的问题,以防万一,您可能想粘贴更多详细信息,当您在故障转移时遇到该错误时您正在做什么

    我将基于此更新我的答案

    • 0

相关问题

  • AlwaysOn AG,带故障转移的 DTC

  • AlwaysOn 可用性组之外的数据库卡在 RESTORING 状态[关闭]

  • 只读辅助数据库上的锁是否传播到读/写数据库

  • 在多站点配置中读取可用性组的首选节点

  • 如何确定高可用性配置是否正常工作

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve