利用SSIS在SQL Azure中执行计划任务(下)

日期: 2011-06-12 作者:Roman Rehak翻译:冯昀晖 来源:TechTarget中国 英文

接上文:利用SSIS在SQL Azure中执行计划任务(上)   一旦该包定义完成,你必须做一项重要的配置步骤。利用SSIS的好处之一是密码在存储到包中之前会自动加密,因此你需要在运行时进行解密。要实现这一效果,SQL Agent需要在创建包的用户下运行。否则,当你SQL Agent计划执行该包时,你可能会遇到如下错误:   “SSIS 错误 :不能解密受保护的XML节点“DTS:Password”,错误代码: 0x8009000B “键值在指定状态下不可用。

”   该问题有几种解决办法。我发现规避该错误最简单的处理方式是使用密码保护该包本身。这样的话,该包就不必使用与用户绑定的键值了。要实现……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

接上文:利用SSIS在SQL Azure中执行计划任务(上)

  一旦该包定义完成,你必须做一项重要的配置步骤。利用SSIS的好处之一是密码在存储到包中之前会自动加密,因此你需要在运行时进行解密。要实现这一效果,SQL Agent需要在创建包的用户下运行。否则,当你SQL Agent计划执行该包时,你可能会遇到如下错误:

  “SSIS 错误 :不能解密受保护的XML节点“DTS:Password”,错误代码: 0x8009000B “键值在指定状态下不可用。”

  该问题有几种解决办法。我发现规避该错误最简单的处理方式是使用密码保护该包本身。这样的话,该包就不必使用与用户绑定的键值了。要实现这种效果,请打开包属性,把属性“保护级别”从“EncryptSensitiveWithUserKey”改为“EncryptSensitiveWithPassword”。然后,在“PackagePassword ”属性域中输入你想使用的密码。从现在起,任何时候你想编辑或者执行该包,你都需要提供该密码。

  SSIS包做好以后,要在SQL Agent中创建一个新的计划任务。在这一步骤的“类型”属性中,选择“SQL Server集成服务包”。你可以从文件系统或者从SQL Server存储中执行该包。

  运行时会提示你输入包密码。SQL Agent将使用SQL Server加密功能存储该密码,在运行时会用它执行该包。这一步完成之后,把该包排入计划任务,然后查看它的历史。我创建了一个包从SQL Azure清除旧数据,然后修改表的列名强制使包失败。图2展示了任务历史的一个截图。

图2:本地SQL Agent历史显示了SQL Azure的错误细节,就像在本地SQL Server中出错一样。

  所以,你可以利用SQL Agent的现有功能来查看任务历史,并能使用运行时任务工作流选项。利用像SSIS和SQL Agent这类熟悉的工具,你只需付出很少的努力就能实现这些功能,而且你还可以在SQL Agent中查看和监视执行历史,如果任务失败你还可以配置自动重试。

  通过创建SSIS包来在SQL Azure运行T-SQL脚本或者存储过程,你可以使用SQL Agent现有功能来模拟SQL Azure中缺少的计划任务功能。

相关推荐