Поделиться через


Восстановление файлов Azure с помощью PowerShell

В этой статье объясняется, как восстановить всю общую папку или определенные файлы из точки восстановления, созданной службой архивации Azure с помощью Azure PowerShell. Вы также можете восстановить файлы Azure с помощью портала Azure, Azure CLI, REST API.

Вы можете восстановить всю общую папку или определенные файлы в общей папке. Восстановить данные можно в исходном или альтернативном расположении.

Предупреждение

Для работы с резервными копиями AFS убедитесь, что служба PowerShell обновлена как минимум до версии "Az.RecoveryServices 2.6.0". Дополнительные сведения см. в разделе, описывающем требования для этого изменения.

Примечание.

  • Восстановление файлов Azure поддерживается только в той же подписке при использовании PowerShell или CLI.
  • Azure Backup теперь поддерживает восстановление нескольких файлов или папок в исходном или альтернативном расположении с помощью PowerShell. Обратитесь к этому разделу документа, чтобы узнать, как это сделать.

Получение точек восстановления

Выполните командлет Get-AzRecoveryServicesBackupRecoveryPoint, чтобы вывести полный список точек восстановления для элемента резервного копирования.

В приведенном ниже сценарии:

  • Переменная $rp представляет собой массив точек восстановления для выбранного архивного элемента за последние семь дней.
  • Массив сортируется по времени в обратном порядке, так что последняя точка восстановления получает индекс 0.
  • Используйте стандартное индексирование массива PowerShell для выбора точки восстановления.
  • В примере $rp[0] выбирает последнюю точку восстановления.
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"
$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID
$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"
$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime()
$rp[0] | fl

Выход аналогичен приведенному ниже.

FileShareSnapshotUri : https://testStorageAcct.file.core.windows.net/testAzureFS?sharesnapshot=2018-11-20T00:31:04.00000
                       00Z
RecoveryPointType    : FileSystemConsistent
RecoveryPointTime    : 11/20/2018 12:31:05 AM
RecoveryPointId      : 86593702401459
ItemName             : testAzureFS
Id                   : /Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/Micros                      oft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;teststorageRG;testStorageAcct/protectedItems/AzureFileShare;testAzureFS/recoveryPoints/86593702401462
WorkloadType         : AzureFiles
ContainerName        : storage;teststorageRG;testStorageAcct
ContainerType        : AzureStorage
BackupManagementType : AzureStorage

После выбора соответствующей точки восстановления вы восстановите общую папку или файл в исходное расположение или в альтернативное расположение.

Восстановление общей папки в альтернативном расположении

Используйте командлет Restore-AzRecoveryServicesBackupItem для восстановления до выбранной точки восстановления. Укажите приведенные ниже параметры, чтобы определить альтернативное расположение:

  • TargetStorageAccountName: учетная запись хранения, в которую восстанавливается содержимое резервной копии. Целевая учетная запись хранения должна быть в том же расположении, что и резервное хранилище.
  • TargetFileShareName: файловые ресурсы в целевой учетной записи хранения, в которую восстанавливается резервная копия содержимого.
  • TargetFolder: папка в общей папке, в которой восстанавливаются данные. Если содержимое резервной копии необходимо восстановить в корневую папку, укажите значения целевой папки в виде пустой строки.
  • ResolveConflict: инструкции в случае конфликта с восстановленными данными. Принимает перезаписать или пропустить.

Выполните командлет с приведенными ниже параметрами:

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -ResolveConflict Overwrite

Эта команда возвращает задание с идентификатором для отслеживания, как показано в следующем примере.

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
testAzureFS        Restore              InProgress           12/10/2018 9:56:38 AM                               9fd34525-6c46-496e-980a-3740ccb2ad75

Восстановление файлов Azure в альтернативном расположении

Используйте командлет Restore-AzRecoveryServicesBackupItem для восстановления до выбранной точки восстановления. Укажите эти параметры, чтобы определить альтернативное расположение и однозначно определить файл, который требуется восстановить.

  • TargetStorageAccountName: учетная запись хранения, в которую восстанавливается содержимое резервной копии. Целевая учетная запись хранения должна быть в том же расположении, что и резервное хранилище.
  • TargetFileShareName: файловые ресурсы в целевой учетной записи хранения, в которую восстанавливается резервная копия содержимого.
  • TargetFolder: папка в общей папке, в которой восстанавливаются данные. Если содержимое резервной копии необходимо восстановить в корневую папку, укажите значения целевой папки в виде пустой строки.
  • SourceFilePath: абсолютный путь к файлу, который необходимо восстановить в общей папке, в виде строки. Тот же самый путь используется в командлете PowerShell Get-AzStorageFile.
  • SourceFileType: выбран элемент: каталог или файл. Принимает каталог или файл.
  • ResolveConflict: инструкции в случае конфликта с восстановленными данными. Принимает перезаписать или пропустить.

Дополнительные параметры (SourceFilePath и SourceFileType) относятся только к отдельному файлу, который требуется восстановить.

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite

Эта команда возвращает задание с идентификатором, который можно отслеживать, как показано в предыдущем разделе.

Восстановление файлов Azure и файлов в исходном расположении

При восстановлении в исходное расположение не нужно указывать параметры, связанные с местом назначения и целевыми объектами. Нужно только указать ResolveConflict.

Перезапись файлов Azure

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -ResolveConflict Overwrite

Перезапись файлов Azure

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite

Восстановление нескольких файлов или папок в исходном или альтернативном расположении

Выполните командлет Restore-AzRecoveryServicesBackupItem, передав путь ко всем файлам или папкам, которые требуется восстановить, в качестве значения параметра MultipleSourceFilePath.

Восстановление нескольких файлов

В следующем сценарии мы попытаемся восстановить файлы FileSharePage.png и MyTestFile.txt.

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"

$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID

$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"

$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID

$files = ("FileSharePage.png", "MyTestFile.txt")

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -MultipleSourceFilePath $files -SourceFileType File -ResolveConflict Overwrite -VaultId $vault.ID -VaultLocation $vault.Location

Восстановление нескольких каталогов

В следующем сценарии мы попытаемся восстановить каталоги zrs1_restore и Restore.

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"

$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID

$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"

$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID

$files = ("Restore","zrs1_restore")

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -MultipleSourceFilePath $files -SourceFileType Directory -ResolveConflict Overwrite -VaultId $vault.ID -VaultLocation $vault.Location

Результат будет выглядеть примерно так:

WorkloadName         Operation         Status          StartTime                EndTime       JobID
------------         ---------         ------          ---------                -------       -----
azurefiles           Restore           InProgress      4/5/2020 8:01:24 AM                    cd36abc3-0242-44b1-9964-0a9102b74d57

Если вы хотите восстановить несколько файлов или папок в альтернативное расположение, используйте приведенные выше скрипты, указав значения параметров, связанных с целевым расположением, как описано выше в статье "Восстановление файлов Azure в альтернативном расположении".

Следующие шаги

Управление резервными копиями файлов Azure с помощью портала Azure, Azure PowerShell, Azure CLI, REST API.