代码之家  ›  专栏  ›  技术社区  ›  lakshminb7

SSIS包未正确提取配置文件[已关闭]

  •  2
  • lakshminb7  · 技术社区  · 16 年前

    我们最近已将SQL Server 2000中的大约30个DTS包迁移到SQL Server 2008中的SSIS包。我们创建包的方式是从配置文件中选择所有与环境相关的变量和其他所需信息,以便跨不同环境(如dev、qa和prod)维护包。

    在使用配置文件设置完所有包之后,当我们测试businessintelligencedevelopmentstudio中的包时,它运行良好,并从配置文件中获取值。当将配置文件中的值更改为dev或其他env时,它会正确地获取值并执行。类似地,在两个不同的环境中进行了尝试,结果包运行良好。所以我们部署了Prod,它工作得很好。

    昨天,我不得不对一个包进行功能更改,所以我对包进行了更改(它只是在一个sql过程执行任务中更改了一个参数,与任何变量都无关),并在两个环境中进行了bids测试,结果运行良好。

    由于更改与任何环境更改都无关,因此我们仅在prod中手动部署了更新的包(而不是相关的配置文件)(即不使用manifest)。包以前使用的、在prod中运行良好的配置文件保持不变。但是当包被执行时,包指向qa,包没有从配置文件中读取。

    一个原因可能是,它仍然使用.dtsx文件中保留的最后执行的值(可以通过在文本编辑器中打开该文件进行检查)。但通常,在执行包时,会从配置文件中覆盖这些值。我想这不会发生。

    可能的原因是什么?我们已经对测试环境之间的切换进行了广泛的测试,但它没有显示这种行为。我们已经在prod环境中遇到过两次。其他人都经历过这个,你是怎么解决的?

    3 回复  |  直到 15 年前
        1
  •  1
  •   lakshminb7    16 年前

    我们终于找到了解决这个问题的办法。在测试环境中运行包并对其进行测试之后,我们将其指向prod环境并添加一个虚拟条件,使其在第一个任务中失败,然后执行包。通过这样做,.dtsx文件中存储的变量值将使用配置文件中的prod值刷新。然后我们创建清单并部署它。但是记住要去掉第一个任务失败的虚拟条件。从现在起就开始工作了。如果我找到这个问题的实际解决方案,我会更新。

        2
  •  0
  •   HLGEM    16 年前

    检查prod上的环境变量,也许有人为了测试而更改了它,却忘了更改它?

        3
  •  0
  •   IMHO    16 年前

    你是怎么处理这些包裹的?

    我发现有效的方法是创建一个sql代理作业并在其中分配所需的配置文件,即步骤属性。最后,每个环境都会有一个作业,并且到配置文件的路径不同。

    推荐文章