Резервное копирование для Azure Stack Hub
В этой статье рассказывается о том, как выполнять резервное копирование по требованию для Azure Stack Hub. Инструкции по настройке среды PowerShell приведены в статье Установка PowerShell для Azure Stack Hub. Чтобы войти в Azure Stack Hub, см. Использование портала администрирования в Azure Stack Hub.
Запуск резервного копирования Azure Stack Hub
Запуск нового резервного копирования без отслеживания хода выполнения задания
Используйте команду Start-AzSBackup для немедленного запуска нового резервного копирования без отслеживания прогресса выполнения задания.
Start-AzsBackup -Force
Запуск резервного копирования Azure Stack Hub с отслеживанием хода выполнения задания
Запустите новое резервное копирование с помощью команды Start-AzSBackup с параметром -AsJob и сохраните его в качестве переменной, позволяющей отслеживать ход выполнения создания резервной копии.
Примечание
Задание резервного копирования будет обозначено на портале как успешно выполненное на 10–15 минут раньше, чем завершится само задание.
Реальное состояние лучше узнавать с помощью приведенного ниже кода.
Важно!
Вводится начальная задержка в 1 миллисекунду, так как код слишком быстро правильно регистрирует задание, из-за чего не возвращает результат для PSBeginTime и состояние задания.
$BackupJob = Start-AzsBackup -Force -AsJob
While (!$BackupJob.PSBeginTime) {
Start-Sleep -Milliseconds 1
}
Write-Host "Start time: $($BackupJob.PSBeginTime)"
While ($BackupJob.State -eq "Running") {
Write-Host "Job is currently: $($BackupJob.State) - Duration: $((New-TimeSpan -Start ($BackupJob.PSBeginTime) -End (Get-Date)).ToString().Split(".")[0])"
Start-Sleep -Seconds 30
}
If ($BackupJob.State -eq "Completed") {
Get-AzsBackup | Where-Object {$_.BackupId -eq $BackupJob.Output.BackupId}
$Duration = $BackupJob.Output.TimeTakenToCreate
$Pattern = '^P?T?((?<Years>\d+)Y)?((?<Months>\d+)M)?((?<Weeks>\d+)W)?((?<Days>\d+)D)?(T((?<Hours>\d+)H)?((?<Minutes>\d+)M)?((?<Seconds>\d*(\.)?\d*)S)?)$'
If ($Duration -match $Pattern) {
If (!$Matches.ContainsKey("Hours")) {
$Hours = ""
}
Else {
$Hours = ($Matches.Hours).ToString + 'h '
}
$Minutes = ($Matches.Minutes)
$Seconds = [math]::round(($Matches.Seconds))
$Runtime = '{0}{1:00}m {2:00}s' -f $Hours, $Minutes, $Seconds
}
Write-Host "BackupJob: $($BackupJob.Output.BackupId) - Completed with Status: $($BackupJob.Output.Status) - It took: $($Runtime) to run" -ForegroundColor Green
}
ElseIf ($BackupJob.State -ne "Completed") {
$BackupJob
$BackupJob.Output
}
Подтверждение завершения резервного копирования
Подтверждение завершения резервного копирования с помощью PowerShell
Используйте следующие команды PowerShell, чтобы убедиться, что резервное копирование успешно завершено:
Get-AzsBackup
В результате должно отобразиться следующее:
BackupDataVersion : 1.0.1
BackupId : <backup ID>
RoleStatus : {NRP, SRP, CRP, KeyVaultInternalControlPlane...}
Status : Succeeded
CreatedDateTime : 7/6/2018 6:46:24 AM
TimeTakenToCreate : PT20M32.364138S
DeploymentID : <deployment ID>
StampVersion : 1.1807.0.41
OemVersion :
Id : /subscriptions/<subscription ID>/resourceGroups/System.local/providers/Microsoft.Backup.Admin/backupLocations/local/backups/<backup ID>
Name : local/<local name>
Type : Microsoft.Backup.Admin/backupLocations/backups
Location : local
Tags : {}
Подтверждение завершения резервного копирования с помощью портала администрирования
Используйте портал администрирования Azure Stack Hub для проверки успешности завершения резервного копирования, выполнив следующие шаги:
- Откройте портал администрирования Azure Stack Hub.
- Выберите элемент Все службы, а затем в категории Администрирование выберите пункт >Резервное копирование инфраструктуры. Выберите Конфигурация в колонке Резервное копирование инфраструктуры.
- Найти имя и дату завершения резервного копирования в списке доступных резервных копий.
- Убедитесь, что для состояния отображается значение Выполнено.
Дальнейшие действия
Дополнительные сведения о рабочем процессе по восстановлению после потери данных.