首页 > 数据库 >链接服务器导致SQL Server停止响应

链接服务器导致SQL Server停止响应

时间:2023-09-05 13:33:05浏览次数:40  
标签:分发 HIS 14 Server 实例 SQL 服务器 链接

概要

如果多个实例中同时存在数据源为对方实例的链接服务器,并且开启了“分发服务器”的属性,您可能会遇到这种情况。

1 现象

14:31时,在SSMS中检查HIS实例是否有复制订阅时,点击了”发布服务器属性“后,SSMS一直无法响应。

       14:33时,前端应用反馈有连不上数据库的情况,用SSMS测试也无法新建连接,但是原来已经建好的连接还能正常使用。14:38时,可以正常连接,前端应用也恢复正常。

 

 

2 分析

通过SQL专家云,看到HIS和CIS两个实例的活动会话等待数从14:31开始同时激增,HIS实例持续到14:39,CIS实例持续到14:44。

 大量的活动会话在执行系统存储过程sys.sp_helpdistributor,等待类型都是OLEDB。

 SQL Server官方文档对这个存储过程的功能描述是”列出有关分发服务器、分发数据库、工作目录和 Microsoft SQL Server 代理用户帐户的信息。该存储过程在发布服务器上对发布数据库或任何数据库执行。“。详细信息参考”https://learn.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/ms177504(v=sql.100)“。查看存储过程的定义,先获取数据源是分发服务器实例的链接服务器,如果该链接服务器的数据源不是当前实例,那么通过该链接服务器远程执行这个存储过程,获取分发服务器的信息。

 

在HIS实例上查询符合分发服务器条件的链接服务器是CISSVR,数据源是CIS实例。

 

 

在CIS实例上查询符合分发服务器条件的链接服务器是HISSVR,数据源是HIS实例。

 

 

根据上面查询到的信息和存储过程的定义可以得出结论:SSMS在HIS实例中点击”发布服务器属性“,首先在HIS实例中执行sys.sp_helpdistributor,查询到链接服务器CISSVR为分发服务器,通过exec CISSVR.master.sys.sp_helpdistributor的方式在CIS实例中执行该存储过程,又查询到链接服务器HISSVR为分发服务器,继而通过exec HISSRV.master.sys.sp_helpdistributor的方式在HIS实例中执行该存储过程。如此形成了死循环式的嵌套调用,随着调用次数越来越多,连接数和内部线程消耗越来越多,导致新连接无法建立,直到生成Deadlocked Schedulers dump后。

 

 

 

3 测试

问题虽然定位清楚了,但是客户确认没有使用复制订阅的功能。因此判断和链接服务器属性有关。在测试环境进行验证, 在没有开启复制订阅功能的实例,是不能看到“发布服务器属性”的菜单的

 

修改任意链接服务器的“分发服务器”属性为True后,就能看到“发布服务器属性”的菜单。如果两个实例上各自有数据源为对方实例的链接服务器,就能模拟出相互循环调用的现象。

 

4 解决

对于没有使用复制订阅功能的实例,修改链接服务器的“分发服务器”属性为False,并且追溯为什么要开启这个属性。

对于使用了复制订阅功能的实例,不要配置两个实例互为对方的分发服务器,当然这种情况在实际环境中也不常见。

更多资料访问

 

北京格瑞趋势科技有限公司是聚焦于数据服务的高新技术企业,成立于2008年,创始团队及核心技术人员来自微软和雅虎。微软数据平台金牌合作伙伴。通过产品+服务双轮驱动的业务模式,15年间累计服务4000+客户,覆盖互联网、市政、交通、电信、医疗、教育、电力、制造业等各个领域。

 

 

标签:分发,HIS,14,Server,实例,SQL,服务器,链接
From: https://www.cnblogs.com/zhuancloud/p/17679352.html

相关文章

  • 2,mysql的常用查询语句
    一、数据库1,创建数据库createdatabasedatabase_name;数据库的Name的命名一般按照公司规范,例如:createdatabasedb_book;2,查看数据库Showdatabases;3,删除数据库Dropdatabasedatabase_name;例如:Dropdatabasedb_book;二、表结构的增删改1.,创建一个表C......
  • MySQL入门系列2-数据控制语言(DCL)
    一、概念DCL数据控制语言,用来管理数据库用户、控制数据库的访问权限。二、查询用户select*frommysql.user;其中Host代表当前用户访问的主机,如果为localhost,代表只能够在当前本机访问,不可以远程访问的。User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯......
  • GPS北斗卫星授时服务器是网络信息化时代的基石
    GPS北斗卫星授时服务器是网络信息化时代的基石GPS北斗卫星授时服务器是网络信息化时代的基石京准电子科技官微——ahjzsz时频,即时间和频率。我们每天看到的时间由高稳频率源产生和保持,频率的精度即决定了时间的精度。随着科学技术的进步,时间频率已经发展成为信息技术的重要支撑......
  • 会员权益-需求调查:需要什么样的云服务器优惠
    目前园子的会员权益少的可怜,但我们的目标是成为非常超值的会员。一边我们在努力开发产品增值功能,一边我们在寻找合作厂商,希望通过厂商的特殊优惠带给园子会员特别的实惠。现在是会员救园,但我们的目标是园惠会员。上周有一家云厂商专门赶到杭州云栖小镇与园子商谈合作,当知道我们正......
  • 1,mysql基础:mysql的安装,mysql的基本数据类型
    第一章安装1,windows安装https://dev.mysql.com/downloads/mysql/如果是msi的安装包,一步步安装就可以,如果是zip包,解压后需要设置在存在有bin文件夹的同目录新建一个my.ini文件加入一下代码:[mysqld]#设置3306端口port=3306#设置mysql的安装目录basedir=C:\ProgramFi......
  • Qt调用 mysql数据库 QSqlQuery::exec()堵塞
    RT,因为某个字段名称写错了,修改字段语句,语句大致如下altertablet_user_settingchangefield1field2varchar(32)default'11'comment'22'每当执行到query.exec()时,直接堵塞不动,刚好我这里使用workbench查看数据库,在workbench调用同样语句,程序就不堵塞了,每次都是这样。最......
  • Windows下Mysql完全卸载教程
    1,windows系统(快捷键win+r)进入命令行输入:netstopmysql2,进入控制面板,卸载mysql3,进入C:\ProgramFiles(x86),C:\ProgramFiles,C:\ProgramData中,将MySQL文件夹删除4,在注册表中彻底清除mysql的东西快捷键win+r输入regedit进入注册表找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Ser......
  • MySQL将timestamp默认值设置为null
    问题以前MySQL创建表的的时候,timestamp类型的字段可以不加默认值。createTimetimestampCOMMENT'创建时间',这样创建是没有问题的。但是现在却报错,“Invaliddefaultvaluefor‘createTime’”问题原因:因为MySQL5.6以后timestamp设定默认值规则改变,不能为000000-0000:00:00......
  • PLSQL通过excel导入数据到表中
    通过PLSQL导入excel注意:excel第一行是字段名字,后面行是值ODBCimport......
  • 牛客——SQL166 每天的日活数及新用户占比
    描述用户行为日志表tb_user_logiduidartical_idin_timeout_timesign_cin110190012021-10-3110:00:002021-10-3110:00:090210290012021-10-3110:00:002021-10-3110:00:090310102021-11-0110:00:002021-11-0110:00:421410290012021......