【发布时间】:2022-02-02 16:01:29
【问题描述】:
我在 Azure SQL 中有一个名为 DatabaseA 的数据库 - 注意 - 不是托管实例,也不是虚拟机上的 SQL。
DatabaseA 有一个与之关联的弹性作业代理,它调用 ElasticJobA,它计划每晚运行并且它可以工作。
ElasticJobA 通过作业表中的内置调度从 Azure SQL 中的 T-SQL 调用。 ElasticJobA 执行一系列步骤来创建 Fact 表,我将其用作名为 SSASTabularCubeB 的 SSAS 表格数据库的源。
我使用 Runbooks 来处理 SSAS 表格数据库,效果很好。它计划在弹性作业完成后运行,但不依赖于它。这意味着如果我的 Elastic 作业在 DatabaseA 上失败,SSASTabularDatabaseB 仍会运行,这会导致问题。
为了阻止这种情况发生,我想从处理表格数据库的同一 Runbook 脚本中调用弹性作业。如果我能做到这一点,我可以让它停止(即不运行 SSASTabularDatabaseB,除非 ElasticJobA 成功完成)。因此,如果 ElasticJobA 失败,它不会尝试处理 SSASTabularDatabaseB。
有人知道怎么做吗?
我用来处理 SSASTabularDatabaseB 的 Runbook 脚本如下所示:
$_Credential = Get-AutomationPSCredential -Name "ServicePrincipal"
Invoke-ProcessASDatabase -DatabaseName "SSASTabularDatabaseB"
-RefreshType "Full"
-Server "asazure://uksouth.asazure.windows.net/MyServer"
-ServicePrincipal -Credential $_Credential
我知道可能还有其他方法可以做到这一点,但请不要建议我迁移到 Azure 中 VM 上的托管实例或完整 SQL。我们需要使用 Azure SQL。
非常感谢任何帮助。
【问题讨论】:
标签: azure-automation azure-runbook