本地SQL登录和使用AD的Windows身份验证都会发生身份验证超时和缓慢。重新启动“面具”问题一段时间,但在6-8小时后,我们再次看到他们。
一直以来,我看到大量的PREEMPTIVE_OS_AUTHENTICATIONOPS在等待。
这不可能是严格意义上的AD或路由问题,因为在使用域帐户登录RDP期间,即使在许多小时或几天的正常运行时间之后,身份验证也会立即发生。
telnet对DC上的相关端口立即返回成功,因此端口是开放的。
我已经浏览过这个页面上的所有内容,但没有结果:https://samzsimplesql.wordpress.com/2015/09/01/troubleshooting-connectivity-issues-timeout-error-258-unable-to-complete-login-process-due-to-delay-in-prelogin-response-pre-login-handshake-failed-2/
(是的,我知道这些都是古老的版本,但我无法控制。)
我还能看什么?
编辑:大约有1000个连接(每天都在变化)。“所有”(除了少数来自我)登录都来自同一个域名帐户。
问题从上星期一开始。
Server错误日志中没有错误。这是唯一的(而且有很多人!)DB服务器事件查看器中的消息:
无法从源MSSQLSERVER找到事件ID 17052的说明。引发此事件的组件没有安装在本地计算机上,或者安装已损坏。您可以在本地计算机上安装或修复组件。如果事件起源于另一台计算机,则显示信息必须与事件一起保存。事件包括以下信息:严重性: 16错误: 258,OS: 258微软共享内存提供程序:超时错误258。
发布于 2022-04-20 06:43:37
在Server等待Active查询完成时,此等待将累积。它是在列出组成员时发生的,如在xp_logininfo存储过程和sys.login_token管理视图中。这种等待经常出现在侧PREEMPTIVE_OS_LOOKUPACCOUNTSID上。如果使用Windows身份验证,则需要此等待类型中的一些值。如果值很高,请参见下面建议的解决方案。抢占等待与常规等待不同,因为它们的执行由外部进程(如操作系统)控制。
以缩小范围并证明此问题是由于活动目录性能而发生的。使用server的启动帐户登录到SQL Server,并在注意到PREEMPTIVE_OS_AUTHORIZATIONOPS等待类型并比较打印的时间时执行下面的查询。它将给您完成AD调用所需的时间。
create procedure PREEMPTIVEOSAUTHORIZATIONOPS with execute as self
as
set nocount on
select CONVERT(varchar, getdate(), 126) PREEMPTIVEOSAUTHORIZATIONOPS
go然后
print convert(varchar, getdate(), 126)
exec dbo.PREEMPTIVEOSAUTHORIZATIONOPS;
print convert(varchar, getdate(), 126)去
资料来源:https://sqlserverscribbles.com/2013/09/26/preemptive_操作系统_authorizationops等待中的sql-server/
https://dba.stackexchange.com/questions/311119
复制相似问题