由于SQL Azure还相当新,所以仍然有许多SQL Server的技术没有被移植到该云服务中。其中之一就是SQL Agent,这个工具可供DBA在数据库服务器上执行计划任务。 我们有几种方式可以模拟这种功能,比如,利用“sqlcmd”工具或者创建运行在Windows Azure中的“工作者角色”云应用。但是这些技术都比较复杂,而且不是很完美。
我们在SQL Azure中有更简单的方法可以执行计划任务——那就是在SQL Azure服务器上采用本地SQL Agent来执行SSIS包。 推荐的这两种执行计划任务的方式都有缺陷。你可以定时执行一个批处理任务,来用“sqlcmd”工具执行一个文件……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
由于SQL Azure还相当新,所以仍然有许多SQL Server的技术没有被移植到该云服务中。其中之一就是SQL Agent,这个工具可供DBA在数据库服务器上执行计划任务。
我们有几种方式可以模拟这种功能,比如,利用“sqlcmd”工具或者创建运行在Windows Azure中的“工作者角色”云应用。但是这些技术都比较复杂,而且不是很完美。我们在SQL Azure中有更简单的方法可以执行计划任务——那就是在SQL Azure服务器上采用本地SQL Agent来执行SSIS包。
推荐的这两种执行计划任务的方式都有缺陷。你可以定时执行一个批处理任务,来用“sqlcmd”工具执行一个文件,但是你必须指定密码作为参数传进去,因为SQL Azure只支持SQL认证。除非你愿意把密码包含在存储于文件中的命令行中,否则你不得不做一些编码处理来对密码进行加密和解密,然后在“sqlcmd”中使用解密的密码。微软提供了一个示例来展示如何创建运行于Azure中的工作者线程应用,但是(1)你将不得不对每项工作定制编码;(2)你甚至可能还没有可用的Windows Azure账号,所以云应用不是可选的方案。
利用SSIS包的技术是相当简单的,如果你掌握基本的SSIS技能,只需要花几分钟就能实现。实现思路就是:创建一个SSIS包,定义指向SQL Azure的连接,并执行一个SQL任务。然后,你需要在本地SQL Agent上定义该包计划执行的时间。当任务运行时,它就会连接到SQL Azure并执行定义好的SQL 任务。
使用本地SQL Agent可以让你访问它的许多功能,你可以定义执行属性(比如:重试次数),任务步骤工作流以及通知。此外,你的任务将会与其它任务一样显示在SQL Agent任务历史中。而且,如果你使用了已经在使用的任务,你就可以少一个监视代理。
第一步是创建一个SSIS包。在该包中,你需要使用SQL凭据定义指向SQL Azure的连接。选择“新建ADO.NET连接”选项。完成后的对话框大概如下图所示。
图1:“连接管理器”对话框显示了如何配置指向Azure数据库的连接。
使用SSIS有一个好处就是:密码在存储到包里之前会自动加密,而运行时会自动解密。
接下来,添加“执行SQL步骤”任务,并把它配置为执行Transact-SQL脚本或者执行一个存储过程。你可以硬编码参数值或者配置包在运行时处理参数传递。
作者
翻译
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
数据和云计算对CIO工作的影响
近日笔者在报道云计算对首席信息官(CIO)的影响时,总是会得出相同的观点:CIO的工作已经不再是曾经的技术工作 […]
-
区块链和云计算联合推动企业部署
目前区块链在金融服务等行业受到越来越多的关注,而在推动这项技术在企业的部署方面,云服务提供商和IT团队将发挥关 […]