【问题标题】:SSIS -- Failed to deploy project. Error 27203SSIS -- 未能部署项目。错误 27203
【发布时间】:2020-12-27 01:12:56
【问题描述】:

我在 Visual Studio 2019 中构建了一个非常简单的 SSIS 包。这是一个在线培训课程,所以没有什么复杂的 - 只需将文件从一个位置复制到另一个位置。然后培训班继续在 SQL 服务器上部署包。我正在使用的 SQL 服务器(版本 15.0.2000.5)在我的笔记本电脑上——我没有尝试连接到任何类型的生产服务器或什至在我的机器之外的任何东西。编辑:SELECT @@Version 生成以下内容:>Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) Sep 24 2019 13:48:23 >Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) o​​n Windows >10 企业 10.0(内部版本 18362:)

在任何情况下,部署向导都会到达部署的最后一步,然后失败。加载项目——通过,连接到目标服务器——通过,更改保护级别——通过,部署项目——失败。错误信息是: 未能部署项目。有关更多信息,请在 operation_messages 视图中查询操作标识符“8”。 (Microsoft SQL Server,错误:27203)

到目前为止,我对这个问题的研究让我运行了一个查询来查看 operation_messages。

我跑了select * from SSISDB.catalog.operation_messages 没有结果。对为什么没有结果的进一步研究表明权限可能存在错误。我玩了一段时间,但我仍然无法成功部署包(我不确定如何检查权限是否设置正确,但我试过了)。另外,既然一切都发生在我的单机上,权限不是很好吗?

无论如何,我也研究了错误 27203,但响应似乎与我的情况不符,因为 1)它们太旧并且使用了旧版本的 Visual Studio 和 SQL Server,或者 2)涉及连接到 SQL Server (同样,我的服务器在我的机器上)。

所以我不确定接下来还要检查什么。我似乎无法找到 operation_messages 来更好地描述问题所在。而且我无法获得与我的情况密切匹配的错误 27203 的任何信息。

直接从 SSMS 部署具有相同的结果。

如果这有帮助,这里是错误对话框的屏幕截图。我正在处理的包的 XML 代码只转到第 85 行。XML 代码中没有第 139 行。

以及来自 SSMS 的“关于”屏幕的屏幕截图

最终,由于这只是为了培训,是否有必要将包部署到服务器?如果您想安排包定期运行,部署包似乎是必要的。但是我可以创建将数据写入服务器的 SSIS 包,没有任何问题。如果我只是在创建完包后从 Visual Studio 中执行包,并且如果我从未真正安排包运行,那么也许我可以跳过关于部署包的这一部分。

提前感谢您的任何指导。

PS -- 如果问题的解决方案涉及某处的设置更改,我会同意的。在我学习的这一点上,我宁愿不使用通过命令行等变通方法进行部署。

【问题讨论】:

  • 我会首先考虑更新您的 SQL Server 版本。我们现在到了 CU6,RTM 版本有 bug。
  • SELECT @@version
  • 这里是 SELECT @@version 查询的结果:Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) Sep 24 2019 13:48:23 版权所有 (C) 2019 Microsoft Corporation Developer Windows 10 Enterprise 10.0 (Build 18362: ) 上的版本(64 位)也添加到原始帖子中(尽管我最初确实包含了该版本)
  • 哦,抱歉,我注意到您在问题中提到了这一点。您的笔记本电脑上的数据库已经创建了 SSISDB,并且您有权访问它(您需要是 SA、SSISDB dbo 所有者或处于...允许包部署的数据库角色)
  • 至于第 139 行,即存储过程 SSISDB.catalog.deploy_project 中失败的行号.ispac 扩展名)我手边只有一个 2016 实例,但它看起来一样 RAISERROR (27203, 16,1, @deploy_id) WITH NOWAIT 部署出现问题,但您需要打开现有报告以了解详细信息或运行一些查询跨度>

标签: sql-server deployment ssis


【解决方案1】:

我遇到了这个错误(并且把我的头发拉了出来)——即使我在 operation_message 视图中没有任何行,但在 [catalog].[operations] 中有一行。我注意到 server_name 是机器的旧名称。对于 [catalog].[operations] 中最近成功的部署,server_name 是机器的当前名称。

我还注意到 SELECT @@SERVERNAME 和 SELECT SERVERPROPERTY('SERVERNAME') 都返回了机器的旧名称。 (通常@@SERVERNAME 会使用旧名称,但 SERVERPROPERTY('SERVERNAME') 会使用当前名称)。

所以我跑了

exec sp_dropserver 'old_name';
GO
exec sp_addserver 'current_name';
GO

并重新启动 SQL 服务,然后部署工作。

【讨论】:

    【解决方案2】:

    当我在EC2 中更改MSSQL Server 的计算机名称时,这开始发生在我身上。它仍然将服务器名称记录为原始计算机名称,而不是新名称。我用以下命令解决了这个问题:

    EXEC sp_dropserver 'oldservername';  
    GO  
    EXEC sp_addserver 'newservername', local;  
    GO  
    

    【讨论】:

    • 这对我有用,并且“本地”是必要的。如果您不添加“,本地”,它会给您一个误导性错误。
    【解决方案3】:

    检查 SQL Server Integration Services 服务是否在您连接的服务器上运行。由于您没有来自SSISDB.catalog.operation_message 的结果,我怀疑该服务已停止。

    开始 > 运行 > services.msc。

    根据您的 SQL Server 版本,查找 SSIS 服务并检查其是否正在运行。

    SQL Server        Service Name
    SQL 2008          MsDtsServer100
    SQL 2012          MsDtsServer110
    SQL 2014          MsDtsServer120
    SQL 2016          MsDtsServer130
    SQL 2017          MsDtsServer140
    SQL 2019          MsDtsServer150
    

    还有;如果您的包使用参数,请转到“参数”选项卡并确保为每个参数设置了默认值。

    【讨论】:

    • 我使用的帐户应该具有系统管理员权限。服务器安装在我的笔记本电脑上,这就是我要连接的服务器。当我转到 services.msc 时,我没有任何与 MsDtsServer 匹配的服务名称。我假设 Start > Run > services.msc 会让我看到本地服务器服务,但也许它没有看到那些。标题是“服务(本地)”。 (也没有像“数据转换服务”这样的东西。)在运行的 Microsoft 服务中,似乎没有一个与 SQL Server 相关。它们是 MSSQLSERVER、MSSQLSERVER Agent、CEIP 服务和 VSS Writer。
    • @RyanS 寻找类似“SQL Server Integration Services 14.0”的东西,如果你双击它,你会在这种情况下看到“服务名称”MtsDtsServer140。根据您安装的版本,您的版本号可能会略有不同。
    【解决方案4】:

    运行sql浏览器服务就可以了,因为ssis不理解除了1432以外的任何端口

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    相关资源
    最近更新 更多