《Windows Azure Platform 系列文章目录

  今天遇到一个Case,客户在使用Azure Automation,执行Azure SQL Database 存储过程的时候,超过3个小时造成超时Runbook超时。

  https://docs.azure.cn/zh-cn/automation/automation-runbook-execution

  为了在云中的所有 Runbook 之间共享资源,Azure 自动化在任何作业运行三小时后都会将其暂时卸载。 在此期间,基于 PowerShell 的 Runbook 作业都将停止且不能重新启动。 作业状态显示“已停止”。 此类型的 Runbook 始终从头开始重新启动,因为它们不支持检查点。

  基于 PowerShell 工作流的 Runbook 会从上一个检查点进行恢复。 运行三小时后,Runbook 作业将由服务挂起,且其状态显示为“正在运行等待资源”。 沙盒变为可用时,Runbook 将通过自动化服务自动重新启动,并从上一个检查点恢复。 这是实现挂起/重新启动的正常 PowerShell 工作流行为。 如果 Runbook 再次超过三小时的运行时,将重复该过程,最多三次。 在第三次重新启动后,如果 Runbook 仍未在三小时内完成,则 Runbook 作业将失败,且作业状态显示为“失败,正在等待资源”。 在此情况下,会收到以下异常和失败。

  

  因为客户的存储过程的逻辑很复杂,执行时间超过3个小时且无法短期内修改。

  我换了一个思路,可以通过客户自己本地IDC的SQL Server VM,通过增加本地Linked Server,链接云端的Azure PaaS SQL Database。

  然后在本地IDC的Azure SQL VM的SQL Agent执行SQL Job。步骤如下:

  1.在本地的PC上,安装SQL Server management Studio,链接到云端Azure SQL Database

  

  2.在本地PC的SSMS,在Master库里,增加Linked Server。命令如下:

EXEC sp_addlinkedserver
@server='AzureSQL',
@srvproduct='',
@provider='sqlncli',
@datasrc='tcp:你的云端数据库Server Name.database.chinacloudapi.cn,1433',
@location='',
@provstr='',
@catalog='你的云端数据库DBName' exec sp_addlinkedsrvlogin 'AzureSQL', 'FALSE', NULL, '登录云端数据库的用户名','登录云端数据库的密码';

  这里的sp_addlinkedsrvlogin,第一个参数是Linked Server的别名

  3. 执行成功后,可以看到本得SQL Server,有Linked Server信息。如下图:

  

  4.可以测试执行脚本,比如:

select * from AzureSQL.[LeiSQLDB].[SalesLT].[Customer];

  注意,第一个参数是linkedDB的别名。我们在步骤2里面指定好了。

  第2个参数是Database Name。

  第3个参数是Schema and Table

  

  5.执行结果

  

  6.然后我们可以通过本地的SQL Agent,执行SQL Job

  

  7.下面的步骤略

Windows Azure Virtual Machine (35) Azure VM通过Linked DB,执行SQL Job的更多相关文章

  1. [New Portal]Windows Azure Virtual Machine (18) Azure Virtual Machine内部IP和外部IP

    <Windows Azure Platform 系列文章目录> 在开始本章内容之前,请读者熟悉以下2篇博文:       [New Portal]Windows Azure Virtual ...

  2. Windows Azure Virtual Machine (24) Azure VM支持多网卡功能

    <Windows Azure Platform 系列文章目录> Update 2016-03-30 一个VM的多张网卡可以在一个VNet的同一个Subnet子网下,笔者亲自测试过了. 如果 ...

  3. Windows Azure Virtual Machine (34) Azure VM挂载WebDAV

    <Windows Azure Platform 系列文章目录> 之前使用Azure VM,挂载box网盘.发现不能正常挂载,这里简单记录一下. 1.WebDAV的网络映射,需要WebCli ...

  4. Windows Azure Virtual Machine (33) Azure虚拟机删除重建

    <Windows Azure Platform 系列文章目录> 注意:本文介绍的重建Azure虚拟机,必须在同一个订阅内删除重建,必须在同一个订阅内删除重建,必须在同一个订阅内删除重建. ...

  5. [SQL in Azure] Provisioning a SQL Server Virtual Machine on Azure

    http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-provision-sql-server/ Provi ...

  6. [New Portal]Windows Azure Virtual Machine (21) 将本地Hyper-V的VM上传至Windows Azure Virtual Machine

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,并且保留OS中的内容. 注意:笔者没有执行Syspr ...

  7. Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM

    <Windows Azure Platform 系列文章目录> Update: 2016-11-3,如果大家在使用Linux VM,使用FIO进行IOPS测试的时候,请使用以下命令: su ...

  8. Windows Azure Virtual Machine (29) 修改Azure VM 数据磁盘容量

    <Windows Azure Platform 系列文章目录> 当我们使用Windows Azure管理界面,创建Azure虚拟机的时候,默认挂载的磁盘是固定大小的 1.比如我创建1个Wi ...

  9. Windows Azure Virtual Machine (30) 修改Azure VM 的Subnet

    <Windows Azure Platform 系列文章目录> 我在使用Azure Virtual Machine虚拟机的时候,常常会结合Virtual Network虚拟网络一起使用. ...

随机推荐

  1. 推荐系统-07-lambda架构

    Lambda 架构 Lambda 架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错.低延迟.可扩展等.其整合离线计算与实时计算,融合不 ...

  2. JAVA中日期和时间的格式化选项

    一.使用printf方法 import java.util.Date; import java.util.Scanner; public class Test { public static void ...

  3. CPU 架构 —— ARM 架构

    linux 系统查看 CPU 架构命令: $ arch armv7l $ uname -m armv7l # -m:--machine # 进一步查看处理器信息 $ cat /proc/cpuinfo ...

  4. 防盗链技术终极解决方案(squid+cookie)

    防盗链技术现状:1.通过识别Referer确认请求来源页面2.Apache,squid等都能对Referer进行识别3.通过ActiveX显示的内容不向服务器提供Referer Header(例如,F ...

  5. parson json解析

    最近交互数据中用到JSON数据,很多年以前用过CJSON解析和生成JSON数据,貌似CJSON已经发展成为了libjson,本打算用libjson库,不过其提供的解析JSON方式采用了回调,是测试过程 ...

  6. Python数据结构——栈的列表实现

    用Python内置的列表(list)实现栈,代码如下: import os os.chdir("E:\\Python_temp") class Stack: def __init_ ...

  7. GinKgoCTF-Crypto

    一:古典密码 一只小羊跳过了栅栏,密码如下: GpKlCeT_FC{rAy_pStiym} 栅栏解密——>11栏 二:滴滴滴 --./-.-/-.-./-/..-./----.--/-../.. ...

  8. python-基础-文件

    一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件, 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件的模式有: r ,只读模式[默认模式 ...

  9. java中类加载时机

    java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程,但是对于类的初始化,虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化,遇到new.getStatic.putStatic或in ...

  10. ios-UITextView输入时,字数限制的倒数及对超出的字数进行截取并弹出提示框

    效果图如上,主要是右上角的Label显示框,创建完各控件后,可以在代理方法里贴上下面代码: -(void)textViewDidChange:(UITextView *)obj { UITextVie ...