SQLServer 错误 35250 到主要副本的连接处于非活动状态。 无法处理该命令。 故障 处理 修复 支持远程
尝试将辅助数据库联接到 Always On 可用性组时,会出现此消息。 如果无法连接到终结点,则通常会导致此错误。
选项 1:通过 Azure Data Studio 直接在笔记本中执行这些步骤在 Azure Data Studio 中打开笔记本
了解如何安装 Azure Data Studio
选项 2:手动执行步骤**备注
必须在主要副本和有问题的次要副本上都运行下列所有步骤。
1. 请确保终结点已创建且已启动。sys.tcp_endpoints tep INNER JOIN sys.server_principals sp ON tep.principal_id = sp.principal_id WHERE tep.type = 4
警告
执行下一命令时请小心,因为它可能导致副本暂时出现故障。
可使用这些命令来重启你发现的终结点
ALTER ENDPOINT hadr_endpoint STATE = STOPPED ALTER ENDPOINT hadr_endpoint STATE = STARTED
使用 telnet 或 Test-NetConnection 验证连接性 。 如果终结点正在侦听且连接成功,则 telnet 将显示一个包含闪烁游标的空白屏幕。 否则,你将收到来自 Telnet 的连接错误。 要退出成功的 Telnet 连接,请按 CTRL+]。 如果使用 Test-NetConnection,请查找 TcpTestSucceeded : True 或 TcpTestSucceeded : False。
telnet ServerName port_number telnet IP_Address port_number
Test-NetConnection -ComputerName ServerName -Port port_number Test-NetConnection -ComputerName IP_address -Port port_number
如果 telnet/Test-NetConnection 到 IP 地址的连接成功,但到 ServerName 的连接失败,则可能是 DNS 或名称解析问题 。 请参阅检查名称解析问题
多个进程侦听同一端口
如果 telnet/Test-NetConnection 连接使用 ServerName 时正常运行,但使用 IP 地址时失败,则在该服务器(可能是另一 SQL 实例)上可能定义了多个终结点,它们均配置为侦听该端口 。 虽然存在问题的实例上终结点的状态显示“已启动”,但另一实例实际上可能具有端口绑定,并阻止正确的实例侦听和建立 TCP 连接。 例如,若要查找端口 5022 的拥有进程,请运行以下命令:
$port = 5022 Get-Process -Id (Get-NetTCPConnection -LocalPort $port).OwningProcess |Select-Object Name, ProductVersion, Path, Id
如果 Telnet 或 Test-NetConnection 连接失败,请查找可能阻止相关终结点端口的防火墙和/或防病毒软件 。 检查防火墙设置,查看是否允许在承载主副本的服务器实例与辅助副本之间进行终结点端口通信(默认情况下为端口 5022)。 如果正在 Azure VM 上运行 SQL Server,则还需要确保网络安全组 (NSG) 允许流量流向终结点端口。 检查防火墙设置(对于 Azure VM,请查看 NSG 设置),查看是否允许在承载主副本的服务器实例与辅助副本之间进行终结点端口通信(默认情况下为端口 5022)
运行以下 PowerShell 脚本,检查是否有已禁用的入站流量规则
Get-NetFirewallRule -Action Block -Enabled True -Direction Inbound |Format-Table
还可以找到端口拥有进程:运行类似于此 (的命令,例如使用端口 5022)
$port = 5022 Get-Process -Id (Get-NetTCPConnection -LocalPort $port).OwningProcess |Select-Object Name, ProductVersion, Path, Id
可查询 sys.dm_hadr_availability_replica_states,查看可能有助于你诊断联接问题的 last_connect_error_number。 根据哪个副本存在通信困难,你可查询主要副本和次要副本:
select r.replica_server_name, r.endpoint_url, rs.connected_state_desc, rs.last_connect_error_description, rs.last_connect_error_number, rs.last_connect_error_timestamp sys.dm_hadr_availability_replica_states rs join sys.availability_replicas r on rs.replica_id = r.replica_id where rs.is_local = 1
例如,如果次要副本无法与 DNS 服务器通信,或者在创建可用性组时副本的 endpoint_url 配置错误,那么你可能在 last_connect_error_description 中获得以下结果:
DNS Lookup failed with error "11001(No such host is known)"
在主要副本上运行以下查询,然后在无法连接的每个次要副本上运行此查询。 这将帮助你查找终结点 URL 和端口
select endpoint_url from sys.availability_replicas
sys.tcp_endpoints tep INNER JOIN sys.server_principals sp ON tep.principal_id = sp.principal_id WHERE tep.type = 4
比较每个查询的 endpoint_url 和端口,确保来自 endpoint_url 的端口与为每个相应副本上的终结点定义的端口匹配
备注
如果使用特定 IP 地址来侦听终结点,而不是默认的“全部侦听”,则可能需要定义使用特定 IP 地址而不是 FQDN 的 URL。
运行以下查询,以列出对相关服务器上的终结点具有连接权限的帐户,并显示分配给每个相关终结点的权限。
SELECT perm.class_desc, prin.name, perm.permission_name, perm.state_desc, prin.type_desc as PrincipalType, prin.is_disabled FROM sys.server_permissions perm LEFT JOIN sys.server_principals prin ON perm.grantee_principal_id = prin.principal_id LEFT JOIN sys.tcp_endpoints tep ON perm.major_id = tep.endpoint_id WHERE perm.class_desc = "ENDPOINT" AND perm.permission_name = "CONNECT" AND tep.type = 4; SELECT ep.name, sp.state, CONVERT(nvarchar(38), suser_name(sp.grantor_principal_id)) AS grantor, sp.TYPE AS permission, CONVERT(nvarchar(46),suser_name(sp.grantee_principal_id)) AS grantee FROM sys.server_permissions SP INNER JOIN sys.endpoints ep ON sp.major_id = ep.endpoint_id AND EP.type = 4 ORDER BY Permission,grantor, grantee;
检查每个节点上是否有可能指向错误服务器的本地 HOSTS 文件条目。 在命令提示符下,使用以下命令打印 HOSTS 文件:
type C:\WINDOWS\system32\drivers\etc\hosts
Get-Content "C:\WINDOWS\system32\drivers\etc\hosts"
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 SQLServer 错误 35250 到主要副本的连接处于非活动状态。 无法处理该命令。 故障 处理 修复 支持远程
相关文章
- SQLServer 错误 2577 在对象 ID O_ID,索引 ID I_ID,分区 ID PN_ID,分配单元 ID A_ID(类型为 TYPE)的索引分配映射 (IAM) 链中,链序列号顺序不对。 序列号为 SEQUENCE1 的页 P_ID1 指向了序列号为 SEQUENCE2 的页 P_ID2。 故障 处理 修复 支持远程
- SQLServer 错误 14420 日志传送主数据库 %s.%s 的备份阈值为 %d 分钟,在过去的 %d 分钟之内未执行备份日志操作。 请查看代理日志和日志传送监视器信息。 故障 处理 修复 支持远程
- SQLServer 错误 18452 用户 “%.*ls” 登录失败。 该登录名为 SQL Server 登录名,不能与 Windows 身份验证一起使用。%.*ls 故障 处理 修复 支持远程
- SQLServer 错误 26014 无法加载用户指定的证书 [Cert Hash(sha1) “%hs”]。 服务器将不接受连接。 您应该验证是否正确安装了证书。 请参阅联机丛书中的“配置证书以供 SSL 使用”。 故障 处理 修复 支持远程
- 极速搭建Java连接SqlServer数据库(java连接sqlserver)
- 「SQLServer连接工具」使用方法及推荐(sqlserver连接工具)
- 简单搭建JSP与SqlServer的数据库连接(jsp连接sqlserver)
- SQLServer数据库中玩转分区表(sqlserver分区表)
- 尚硅谷全面掌握SQLServer数据库知识(尚硅谷sqlserver)
- 从包图提高SqlServer性能(包图sqlserver)
- SQLServer配置防止除零错误(sqlserver 除零)
- 解决SQLServer中断连接问题(sqlserver重连)
- SQLServer表:读写,轻松搞定(sqlserver表读写)
- 索引SQLServer加速查询:聚集索引的优势(sqlserver 聚集)
- 玩转SQLServer:从基础到进阶的用法研究(sqlserver 用法)
- 求解SQLServer中的交集(sqlserver求交集)
- 掌握SqlServer,记录你的行动与收获(sqlserver日记)
- SQLServer数据库插座连接着IT世界的心脏(sqlserver插座)
- 盗取重大财务安全泄漏:SQLServer遭受被盗行为(sqlserver已被)
- SQLServer实现远程连接 – 详细指南(sqlserver允许远程连接)
- 全确保SQLServer环境的安全性(sqlserver安)
- 使用SQLServer记录姓名及号码的简单方法(sqlserver 姓号)
- 熟记SQLServer口诀,成就数据库牛人行(sqlserver口诀)
- 存储实现高性能:使用SqlServer双网卡存储(sqlServer双网卡)
- 在SQLServer中优雅使用列变量(sqlserver列变量)
- SQLServer泛滥的假冒伪劣产品,请不要上当!(sqlserver伪劣)
- 连接SQLServer中连接两表的实践(sqlserver两表)
- 深入探讨SqlServer的一致性(sqlserver一致性)