Azure备份仅等待直到拍摄快照,而不等到将其传输到保管库

问题描述

我正在编写一个PowerShell脚本,用于启动MysqL Server进程,从Azure恢复服务启动备份,然后再次启动MysqL Server进程。

出于我的目的,Wait-AzRecoveryServicesBackupJob cmdlet不适合,因为Azure备份总是需要10分钟来拍摄快照,并且需要3-24小时才能将该快照传输到Vault。我如何只能等到拍摄快照后才能进行拍摄?

enter image description here

解决方法

您将需要设置自己的轮询循环,但是不幸的是Get-AzRecoveryServicesBackupJob没有所需的属性。在Powershell中,您可以使用两个选项-REST APICLI

获得工作信息后,您可以在properties.extendedInfo.tasksList下找到各个任务

在CLI下实施此操作看起来像这样:

$resourceGroup = "resourceGroup"
$vaultName = "vaultName"

$jobs = az backup job list --resource-group $resourceGroup --vault-name $vaultName --start-date 28-8-2020 | convertfrom-json
$jobName = $jobs[0].name

$jobStatus = az backup job show --name $jobName --resource-group $resourceGroup --vault-name $vaultName
$taskStatus = $jobStatus.properties.extendedInfo.tasksList | Where-Object { $_.taskId -eq "Take Snapshot"}
While ( $taskStatus.status -ne Completed ) {
     Write-Host -Object "Waiting for completion..."
     Start-Sleep -minutes 1
     $jobStatus = az backup job show --name $jobName --resource-group $resourceGroup --vault-name $vaultName
     $taskStatus = $jobStatus.properties.extendedInfo.tasksList | Where-Object { $_.taskId -eq "Take Snapshot"}
}
Write-Host -Object "Done!"