You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSIS包连接Linux本地MySQL频繁出现远程连接强制关闭错误求助

SSIS包连接本地Linux MySQL实例频繁断开:连接被远程主机强制关闭

问题背景

部署在Azure SQL Server的ssisdb中的SSIS项目,包含多个负责向本地Linux环境MySQL 5.7 InnoDB实例执行多数据流任务的包。此前运行正常,近期生产环境频繁执行失败,报错信息固定为:

Reading from the stream failed. System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

故障特征:

  • 错误通常在执行开始后1-2分钟出现
  • 无固定规律,多发生在夜间,且不针对特定包
  • 测试环境(Azure上部署同版本MySQL)运行成功率100%,仅本地部署的生产环境出问题
  • 可通过Workbench正常连接生产MySQL并执行查询,暂排除基础网络连通性问题

已尝试的排查与修复方案

  • 通过ADO.NET MySQLConnector的MySqlCommand拼接SET Session语句,将net_read_timeout和net_write_timeout设置为10分钟,仅生效一晚后故障复现
  • 增大max_packet_size(无BLOB数据查询场景),生产批次仅正常运行一晚后再次失败
  • 确认生产MySQL配置:interactive_timeout和wait_timeout均设为8小时,SSIS的commandTimeout设为1.5小时
  • 联系离岸运维团队确认,执行时段服务器无压力/过载,慢查询日志无有效信息,已要求启用通用日志排查

下一步排查建议

  1. 网络层面抓包定位中断源

    • 在SSIS执行服务器和MySQL服务器之间执行tcpdump抓包,分析TCP连接断开时的RST包来源,确认是MySQL主动断开、中间网络设备(防火墙/负载均衡)清理连接,还是SSIS端异常
    • 重点核查夜间时段的网络设备策略,比如防火墙的空闲连接超时配置,是否存在短于MySQLwait_timeout的规则
  2. MySQL端深度日志分析

    • 启用通用日志后,检查连接断开前的最后一条SQL语句,排查是否存在锁等待、资源耗尽等异常场景
    • 查看MySQL错误日志(默认路径/var/log/mysql/error.log),搜索Aborted connection相关记录,MySQL会明确标注连接断开的具体原因(如客户端超时、数据包异常、权限变更等)
  3. SSIS连接与执行策略优化

    • 修改SSIS连接管理器的连接字符串,添加Pooling=false关闭连接池,避免复用的连接被中间设备中断
    • 将大批次数据流任务拆分为多个小批次执行,缩短单连接的持续使用时间
    • 核查SSIS执行账户的权限策略,确认夜间是否存在AD域账户临时失效等情况,间接引发连接中断
  4. 中间网络设备配置核查

    • 要求离岸团队检查生产环境与Azure之间的链路设备(VPN、防火墙、WAF等)的超时配置,确认TCP空闲超时是否短于MySQL的wait_timeout
    • 确认夜间是否存在网络维护、带宽限制等操作,导致连接被强制中断

内容的提问来源于stack exchange,提问作者SQLBoffin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:53:07