Azure восстановление во времени - PullRequest
2 голосов
/ 28 марта 2020

Здесь появилась задача создать сценарий Powershell для восстановления базы данных из Azure Recovery Services в виртуальную машину. Он отлично работает для обычных полных резервных копий, которые есть в Recovery Vault, но мы делаем полное резервное копирование только раз в неделю, остальное - резервное копирование журнала. Но как же тебе их восстановить !? В течение некоторого времени просматривал, но не нашел ничего ценного. Нашел кое-что о том, как делать это с виртуальной машиной, но не с базой данных SQL внутри виртуальной машины. Поэтому мы используем тип AzureWorkload для их резервного копирования, но команда Get-AzRecoveryServicesBackupContainer не работает с AzureWorkload.

Я использую этот код для восстановления полной резервной копии

$vaultID = Get-AzRecoveryServicesVault -ResourceGroupName $ResourceGroupName -Name $VaultName | Select-Object -ExpandProperty ID
[string]$DatabaseToRestore = "*" + $CustomerDB
$bkpItem = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureWorkload -WorkloadType MSSQL -VaultId $vaultID | Where-Object {$_.Name -like $DatabaseToRestore}
$RecoverPointId = (Get-AzRecoveryServicesBackupRecoveryPoint -Item $bkpItem -VaultId $vaultID | Where-Object {$_.RecoveryPointType -match "Full"} | Sort-Object RecoveryPointTime –Descending | Select-Object -First 1).RecoveryPointId
$FullRP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $bkpItem -VaultId $vaultID -RecoveryPointId $RecoverPointId
$TargetInstance = Get-AzRecoveryServicesBackupProtectableItem -WorkloadType MSSQL -ItemType SQLInstance -ServerName $TempVMname -VaultId $vaultID
$AnotherInstanceWithFullConfig = Get-AzRecoveryServicesBackupWorkloadRecoveryConfig -RecoveryPoint $FullRP -TargetItem $TargetInstance -AlternateWorkloadRestore -VaultId $vaultID
$AnotherInstanceWithFullConfig.RestoredDBName = $CustomerDB
$RestoreJob = (Restore-AzRecoveryServicesBackupItem -WLRecoveryConfig $AnotherInstanceWithFullConfig -VaultId $vaultID).JobId

/ Thomas

...