记一次Sqlserver数据库存储过程调用导致的连接池耗尽事件

背景:

有两台数据库服务器IP分别为A和B。

(1)A服务器上有一个存储过程名称Proc_A,B服务器上有一个存储过程名称Proc_B, A服务器上有B服务器上远程数据库链接,B服务器上也有A服务器上远程数据库链接。

(2)在A服务器上面判断业务数据,如果是条件1,则走A服务器的自己的逻辑(Proc_A),如果是条件2,则在A服务器上远程调用B服务器上的逻辑(Proc_B)。

(3)在B服务器上面判断业务数据,如果是条件2,则走B服务器的自己的逻辑(Proc_B),如果是条件1,则在B服务器上远程调用A服务器上的逻辑(Proc_A),A服务器和B服务器的数据是物理隔离的。

(4)A服务器和B服务器的数据是物理隔离的。

发生过程:

在A服务器上调用B服务器上的逻辑,正常不在A上就在B上,因为设备故障导致了传入了非法的业务数据,导致判断既不是A服务器的逻辑,也不是B服务器上的逻辑,在A服务器上远程调用B,B服务器上又在调用A服务器的逻辑,默认产生了循环。

故障现象:

数据库通过客户端无法正常登录,提示链接通道占满

解决办法:

在A服务器和B服务器上只相互调用1次,阻断循环。

总结:

跨服务器互相调用数据,一定要注意是否会形成循环。

相关推荐
么么...2 分钟前
系统性 MySQL 优化:性能分析、索引设计与失效场景全解
数据库·经验分享·sql·mysql
heartbeat..7 分钟前
数据库性能优化:优化的时机(表结构+SQL语句+系统配置与硬件)
java·数据库·mysql·性能优化
YongCheng_Liang7 分钟前
分布式数据库核心原理深度解析:架构、理论与事务解决方案
运维·数据库·sql
UrSpecial9 分钟前
IM项目——文件管理子服务
服务器·数据库·oracle
一个响当当的名号10 分钟前
lectrue6 缓冲池
数据库
小唐同学爱学习12 分钟前
缓存与数据库一致性问题
java·数据库·spring boot·缓存
Traced back16 分钟前
Windows窗体应用 + SQL Server 自动清理功能方案:按数量与按日期双模式
数据库·windows·c#·.net
观远数据23 分钟前
在线数据分析网站有哪些?7款自助平台选型指南
大数据·数据库·数据分析
不想写bug呀26 分钟前
Redis集群介绍
数据库·redis·缓存
派大鑫wink29 分钟前
【Day47】MyBatis 进阶:动态 SQL、关联查询(一对一 / 一对多)
数据库·sql·mybatis