【问题标题】:SSIS package job fails with VS_NEEDSNEWMETADATA errorSSIS 包作业因 VS_NEEDSNEWMETADATA 错误而失败
【发布时间】:2019-02-15 11:30:24
【问题描述】:

嘿,我在 SQL Server SSIS 中部署了 SSIS 项目。我还有一个计划的作业,它从 SQL Server 运行已部署的 SSIS 项目。 (见截图) 现在,当这项工作运行时(基本上是运行 dtsx 包),我收到一封错误电子邮件,上面写着

加载事实暂存表失败 - 报告数据仓库并显示以下错误消息:

“事实目的地”验证失败并返回验证状态 “VS_NEEDSNEWMETADATA”。

我知道如果我使用visual studio打开服务器上的dtsx包可以解决这个错误,我可以通过右键单击数据源然后选择编辑来修复它,然后 好的。就我而言,因为这只在生产服务器上失败,所以我无权访问 Visual Studio。 所以我的问题是如何仅使用 dtsx 包来解决此错误

我使用的是 SQL Server 2012

【问题讨论】:

  • 是的,你是对的。在这种情况下,我找不到在任何源或目标脚本上执行的任何更改脚本。所以调试这很困难
  • 正如错误所说,自创建包以来表已更改,现在需要新的元数据。您不能手动编辑它,即使它是 XML。您需要使用 SSDT 打开它并刷新任何有错误标记的源/目标。更好的是,将数据库更改复制到用于开发该包的任何数据库,对其进行编辑,然后再次发布
  • 您无需更改脚本即可找到更改的内容。您可以备份目标数据库,将其还原到您的开发服务器并编辑包。或者您可以使用 SSDT 自己的 Schema Comparison 工具来查找更改并将其应用到您的开发数据库中
  • 如果没有 SSDT,您将无法执行任何操作。那是a standalone installation 顺便说一句,你不需要购买Visual Studio 来使用它。
  • 所以我想如果没有安装 Visual Studio 和 SSDT 就无法在 prod 服务器上调试它

标签: sql-server ssis ssis-2012


【解决方案1】:

VS_NEEDSNEWMETADATA - 此错误表示包中涉及的表的基础架构已被某人更改,例如列或表被重命名等。

dtsx 包内部是 XML 文件。如果你足够熟练,你可以在 Notepad++ 中调整它并重新提交一个包。

但我仍然建议在 BIDS/SSDT 中进行,因为大的变化最终会导致数据流沿袭不一致。

另一种解决方法是还原导致此类问题的数据库方面的更改。也许通过进一步比较所涉及的事实表来并行恢复备份

如果 SSMS 可用,您可以通过使用 Schema Change History 报告相对容易地找到一些关于搜索位置的跟踪:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2013-07-15
    • 2018-03-09
    • 1970-01-01
    相关资源
    最近更新 更多