SQL Server Integration Services (SSIS) 服务无法启动

问题现象
安装 SQL Server 2022 后,SQL Server Integration Services (SSIS) 服务无法启动,日志报错 “服务无法响应控制请求”(错误代码 1067)或 “依赖服务不存在或已标记为删除”


快速诊断
  1. 检查服务状态与依赖项

    # 查看 SSIS 服务状态及依赖服务
    Get-Service -Name "SSISScaleOutMaster140","SSISScaleOutWorker140" | 
      Select-Object Name, Status, DependentServices
    • 关键依赖服务

      • Windows Event Log

      • Remote Procedure Call (RPC)

  2. 验证安装完整性

    # 检查 SSIS 组件是否已安装
    Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name LIKE '%Integration Services%'"
  3. 排查端口冲突

    # 检查默认端口 8391(主节点)和 8392(工作节点)是否被占用
    netstat -ano | findstr ":8391\|:8392"

解决方案
步骤 1:修复或重新安装 SSIS 组件
  1. 通过安装中心修复

    • 运行 SQL Server 安装中心,选择 维护 > 修复,勾选 Integration Services

  2. 命令行静默修复

    setup.exe /ACTION=REPAIR /FEATURES=IS /INSTANCENAME=SSIS /Q
步骤 2:配置服务启动账户与权限
  1. 设置服务账户

    扫描二维码关注公众号,回复: 17539776 查看本文章
    • 打开 服务管理器,找到 SQL Server Integration Services 16.0

    • 右键选择 属性 > 登录,指定具有管理员权限的域账户(如 DOMAIN\SSIS_Service)。

  2. 授予文件系统权限

    # 授予服务账户对 SSIS 目录的完全控制权限
    icacls "C:\Program Files\Microsoft SQL Server\160\DTS" /grant "DOMAIN\SSIS_Service:(OI)(CI)F"
步骤 3:修复依赖服务配置
  1. 重置 Windows Event Log 服务

    sc config EventLog start= auto
    Start-Service EventLog
  2. 重建 RPC 依赖项

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SSISScaleOutMaster140" -Name "DependOnService" -Value "RpcSs"
    Restart-Service SSISScaleOutMaster140 -Force

验证与日志分析
  1. 测试服务启动

    Start-Service SSISScaleOutMaster140
    Get-Service SSISScaleOutMaster140 | Select-Object Status
  2. 检查 SSIS 日志

    • 主节点日志

      C:\Program Files\Microsoft SQL Server\160\DTS\Binn\Master.log
    • 工作节点日志

      C:\Program Files\Microsoft SQL Server\160\DTS\Binn\Worker.log
    • 搜索关键词 Failed to initialize components 或 Port conflict

  3. 验证 SSIS 包执行

    # 使用 dtutil 工具测试包加载
    dtutil /FILE "C:\SSIS\TestPackage.dtsx" /CHECKEXIST

扩展场景:分布式 Scale-Out 配置问题
  • 错误示例The Scale Out Master service cannot connect to the SQL Server instance

  • 解决方案

    1. 配置数据库连接字符串

      <!-- 修改 Master.dtsx 配置文件 -->
      <configuration>
        <SqlServerInstance>SQLServerName</SqlServerInstance>
        <CatalogDatabase>SSISDB</CatalogDatabase>
      </configuration>
    2. 启用混合身份验证

      ALTER LOGIN [DOMAIN\SSIS_Service] WITH PASSWORD = 'SecureP@ss!';
      ALTER DATABASE SSISDB SET TRUSTWORTHY ON;

安全加固建议
  1. 限制防火墙规则

    # 仅允许可信 IP 访问 Scale-Out 端口
    New-NetFirewallRule -DisplayName "SSIS-ScaleOut" -Direction Inbound -Protocol TCP -LocalPort 8391-8392 -RemoteAddress 192.168.1.0/24 -Action Allow
  2. 启用加密通信

    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\160\SSIS" -Name "EncryptScaleOutCommunication" -Value 1


通过以上步骤,可解决大部分 SSIS 服务启动失败问题。若为集群环境,需确保所有节点同步配置,并验证负载均衡策略。生产环境中建议定期备份 SSIS 目录 (C:\Program Files\Microsoft SQL Server\160\DTS) 并监控服务健康状态。

关于作者:

15年互联网开发、带过10-20人的团队,多次帮助公司从0到1完成项目开发,在TX等大厂都工作过。当下为退役状态,写此篇文章属个人爱好。本人开发期间收集了很多开发课程等资料,需要可联系我