记一次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次,阻断循环。

总结:

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

相关推荐
原来是猿7 分钟前
MySQL【用户管理】
数据库·mysql
2501_9454235417 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
2401_8463416518 分钟前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
2401_8318249631 分钟前
编写一个Python脚本自动下载壁纸
jvm·数据库·python
2401_8579182942 分钟前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
IvorySQL1 小时前
PostgreSQL 19 重磅新语法终于补齐这个缺口
数据库·postgresql·开源
IvorySQL1 小时前
PostgreSQL 技术日报 (3月23日)|使用 rdtsc 减少 EXPLAIN ANALYZE 的计时开销
数据库·postgresql·开源
yhole1 小时前
SQL中的REGEXP正则表达式使用指南
数据库·sql·正则表达式
IvorySQL1 小时前
PostgreSQL 技术日报 (3月21日)|这些机制,可能并非 “ 理所当然 ”
数据库·postgresql·开源
m0_518019482 小时前
使用Seaborn绘制统计图形:更美更简单
jvm·数据库·python