自动暂停和恢复天蓝色突触分析数据库

问题描述

想在周六,周日和周一上午暂停数据库是否想使用任何脚本或任何选项自动恢复?或如何?

谢谢!

解决方法

此任务没有特定功能,但是可以使用多种技术来实现。要执行“暂停/重启”功能,可以使用Azure REST API

重复计划

我建议使用具有强大重复触发功能的Logic Apps。您很可能需要每天运行一次,但是您可以指定小时数。要仅在特定日期继续,您需要添加一些其他处理以从运行时解析DayOfWeek:

enter image description here

dayOfWeek(convertFromUtc(utcNow(),'Eastern Standard Time'))

获取承载令牌

在此示例中,我使用服务原理进行身份验证,并使用Azure Key Vault存储相关机密:

enter image description here

检查资源状态

下一步是检查数据仓库的状态:如果它已经暂停,我们只想在状态为“在线”时尝试暂停它。为此,我们将再次调用API,这一次传递的是我们在上面获取的Bearer令牌:

enter image description here

在此示例中,我使用变量而不是Key Vault来演示不同的方法。

我们将使用上一个操作的StatusCode属性进行此确定:

enter image description here

检查是否有任何正在运行的作业

如果数据仓库的状态为“联机”,则接下来要检查的是是否有任何活动的进程。我们通过在数据仓库本身上运行查询来完成此任务:

enter image description here

然后,我们将结果捕获到一个变量中,并将其用于另一个Condition活动:

enter image description here

body('Get_Ops_Count')?['resultsets']['Table1'][0]['OpsCount']

发出暂停命令

如果没有活动的作业,我们可以自由地发出“暂停”命令。再一次,我们将使用之前获得的Bearer令牌来利用REST API:

enter image description here

重新启动数据仓库

重新启动过程非常相似,只是不需要检查活动进程,因此您应该能够从本示例中推断出这一点。要重新启动数据仓库,REST端点是“恢复”而不是“暂停”。