共用方式為


Initialize-AzDataProtectionRestoreRequest

初始化 Restore Request 物件,以觸發受保護備份實例上的還原。

語法

Initialize-AzDataProtectionRestoreRequest
          -DatasourceType <DatasourceTypes>
          -SourceDataStore <DataStoreType>
          -RestoreLocation <String>
          -RestoreType <RestoreTargetType>
          -TargetResourceId <String>
          [-RecoveryPoint <String>]
          [-PointInTime <DateTime>]
          [-RehydrationDuration <String>]
          [-RehydrationPriority <String>]
          [-RestoreConfiguration <PSObject>]
          [-SecretStoreURI <String>]
          [-SecretStoreType <SecretStoreTypes>]
          [<CommonParameters>]
Initialize-AzDataProtectionRestoreRequest
          -DatasourceType <DatasourceTypes>
          -SourceDataStore <DataStoreType>
          -RestoreLocation <String>
          -RestoreType <RestoreTargetType>
          -TargetResourceId <String>
          [-RecoveryPoint <String>]
          [-RestoreConfiguration <PSObject>]
          [-ItemLevelRecovery]
          [-ContainersList <String[]>]
          [-PrefixMatch <Hashtable>]
          [<CommonParameters>]
Initialize-AzDataProtectionRestoreRequest
          -DatasourceType <DatasourceTypes>
          -SourceDataStore <DataStoreType>
          -RestoreLocation <String>
          -RestoreType <RestoreTargetType>
          [-RecoveryPoint <String>]
          [-PointInTime <DateTime>]
          [-RehydrationDuration <String>]
          [-RehydrationPriority <String>]
          [-RestoreConfiguration <PSObject>]
          [-SecretStoreURI <String>]
          [-SecretStoreType <SecretStoreTypes>]
          -BackupInstance <BackupInstanceResource>
          [<CommonParameters>]
Initialize-AzDataProtectionRestoreRequest
          -DatasourceType <DatasourceTypes>
          -SourceDataStore <DataStoreType>
          -RestoreLocation <String>
          -RestoreType <RestoreTargetType>
          [-RecoveryPoint <String>]
          [-PointInTime <DateTime>]
          [-RehydrationDuration <String>]
          [-RehydrationPriority <String>]
          [-RestoreConfiguration <PSObject>]
          [-SecretStoreURI <String>]
          [-SecretStoreType <SecretStoreTypes>]
          [-ItemLevelRecovery]
          [-ContainersList <String[]>]
          -BackupInstance <BackupInstanceResource>
          [-FromPrefixPattern <String[]>]
          [-ToPrefixPattern <String[]>]
          [<CommonParameters>]
Initialize-AzDataProtectionRestoreRequest
          -DatasourceType <DatasourceTypes>
          -SourceDataStore <DataStoreType>
          -RestoreLocation <String>
          -RestoreType <RestoreTargetType>
          [-RecoveryPoint <String>]
          [-RehydrationDuration <String>]
          [-RehydrationPriority <String>]
          [-SecretStoreURI <String>]
          [-SecretStoreType <SecretStoreTypes>]
          -TargetContainerURI <String>
          [-TargetResourceIdForRestoreAsFile <String>]
          [-FileNamePrefix <String>]
          [<CommonParameters>]

Description

初始化 Restore Request 物件,以觸發受保護備份實例上的還原。

範例

範例 1:取得受保護 Azure 磁碟備份實例的還原要求物件

$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "sarath-rg" -VaultName "sarath-vault"
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId "xxx-xxx-xxx" -ResourceGroupName "sarath-rg" -VaultName "sarath-vault" -BackupInstanceName $instance.Name
Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDisk -SourceDataStore OperationalStore -RestoreLocation "westus"  -RestoreType AlternateLocation -TargetResourceId "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/disks/{DiskName}" -RecoveryPoint "892e5c5014dc4a96807d22924f5745c9"

ObjectType                                  RestoreTargetInfoObjectType RestoreTargetInfoRecoveryOption RestoreTargetInfoRestoreLocation SourceDataStoreType RecoveryPointI
                                                                                                                                                             d
----------                                  --------------------------- ------------------------------- -------------------------------- ------------------- --------------
AzureBackupRecoveryPointBasedRestoreRequest RestoreTargetInfo           FailIfExists                    westus                           OperationalStore    892e5c5014dc4a96807d22924f5745c9

此命令初始化還原要求對象,這個物件可用來觸發還原。

範例 2:取得受保護 Azure Blob 備份實例的還原要求物件

$startTime = (Get-Date).AddDays(-30).ToString("yyyy-MM-ddTHH:mm:ss.0000000Z")
$endTime = (Get-Date).AddDays(0).ToString("yyyy-MM-ddTHH:mm:ss.0000000Z")
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "rgName" -VaultName "vaultName"
$pointInTimeRange = Find-AzDataProtectionRestorableTimeRange -BackupInstanceName $instance[0].BackupInstanceName -ResourceGroupName "rgName" -SubscriptionId "subscriptionId"  -VaultName "vaultName" -SourceDataStoreType OperationalStore -StartTime $startTime -EndTime $endTime
Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore OperationalStore -RestoreLocation $vault.Location -RestoreType OriginalLocation -BackupInstance $instance[0] -PointInTime (Get-Date -Date $pointInTimeRange.RestorableTimeRange.EndTime)

ObjectType                                 RestoreTargetInfoObjectType RestoreTargetInfoRecoveryOption RestoreTargetInfoRestoreLocation SourceDataStoreType RecoveryPointTime
----------                                 --------------------------- ------------------------------- -------------------------------- ------------------- -----------------
AzureBackupRecoveryTimeBasedRestoreRequest restoreTargetInfo           FailIfExists                    eastus2euap                      OperationalStore    2021-04-24T13:32:41.7018481Z

此命令初始化還原要求物件,可用來觸發 Blob 的還原。

範例 3:取得受保護 AzureBlob 備份實例下容器之專案層級復原的還原要求物件

$startTime = (Get-Date).AddDays(-30).ToString("yyyy-MM-ddTHH:mm:ss.0000000Z")
$endTime = (Get-Date).AddDays(0).ToString("yyyy-MM-ddTHH:mm:ss.0000000Z")
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "rgName" -VaultName "vaultName"
$pointInTimeRange = Find-AzDataProtectionRestorableTimeRange -BackupInstanceName $instance[0].BackupInstanceName -ResourceGroupName "rgName" -SubscriptionId "subscriptionId"  -VaultName "vaultName" -SourceDataStoreType OperationalStore -StartTime $startTime -EndTime $endTime
Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore OperationalStore -RestoreLocation $vault.Location -RestoreType OriginalLocation -BackupInstance $instances[0] -PointInTime (Get-Date).AddDays(-1) -ItemLevelRecovery -ContainersList "containerName1","containerName2"

ObjectType                                 RestoreTargetInfoObjectType RestoreTargetInfoRecoveryOption RestoreTargetInfoRestoreLocation SourceDataStoreType RecoveryPointTime
----------                                 --------------------------- ------------------------------- -------------------------------- ------------------- -----------------
AzureBackupRecoveryTimeBasedRestoreRequest itemLevelRestoreTargetInfo  FailIfExists                    eastus2euap                      OperationalStore    2021-04-23T02:47:02.9500000Z

此命令初始化還原要求對象,這個物件可用來在 Blob 的容器層級觸發專案層級復原。

範例 4:取得受保護 AzureBlob 備份實例下容器/prefixMatch 之專案層級復原的還原要求物件

$startTime = (Get-Date).AddDays(-30).ToString("yyyy-MM-ddTHH:mm:ss.0000000Z")
$endTime = (Get-Date).AddDays(0).ToString("yyyy-MM-ddTHH:mm:ss.0000000Z")
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "rgName" -VaultName "vaultName"
$pointInTimeRange = Find-AzDataProtectionRestorableTimeRange -BackupInstanceName $instance[0].BackupInstanceName -ResourceGroupName "rgName" -SubscriptionId "subscriptionId"  -VaultName "vaultName" -SourceDataStoreType OperationalStore -StartTime $startTime -EndTime $endTime
Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore OperationalStore -RestoreLocation $vault.Location -RestoreType OriginalLocation -BackupInstance $instances[0] -PointInTime (Get-Date).AddDays(-1) -ItemLevelRecovery -FromPrefixPattern "container1/aaa","container1/ccc", "container2/aab", "container3" -ToPrefixPattern "container1/bbb","container1/ddd", "container2/abc", "container3-0"

ObjectType                                 RestoreTargetInfoObjectType RestoreTargetInfoRecoveryOption RestoreTargetInfoRestoreLocation SourceDataStoreType RecoveryPointTime
----------                                 --------------------------- ------------------------------- -------------------------------- ------------------- -----------------
AzureBackupRecoveryTimeBasedRestoreRequest itemLevelRestoreTargetInfo  FailIfExists                    eastus2euap                      OperationalStore    2021-04-23T02:47:02.9500000Z

此命令初始化還原要求對象,這個物件可用來根據 Blob 容器下的名稱前置詞,在 Blob 層級觸發專案層級復原。

上述 restoreRequest 會還原下列容器/Blob:

FromPrefix ToPrefix “container1/aaa” “container1/bbb” (還原此前置詞範圍中相符的所有 Blob) “container1/ccc” “container1/ddd” “container2/aab” “container2/abc” “container3” “container3-0” (還原整個容器3)

注意:範圍不應彼此重疊。 參考:https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata

範例 5:取得跨區域還原要求物件,以作為數據源類型的 AzureDatabaseForPostgreSQL 資料庫進行還原

$vault = Search-AzDataProtectionBackupVaultInAzGraph -ResourceGroup $ResourceGroupName -Subscription $SubscriptionId -Vault $VaultName
$instance = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $subscriptionId  -ResourceGroup  $resourceGroupName  -Vault $vaultName -DatasourceType AzureDatabaseForPostgreSQL
$recoveryPointsCrr = Get-AzDataProtectionRecoveryPoint -BackupInstanceName $instance.Name -ResourceGroupName $resourceGroupName -VaultName $vaultName -SubscriptionId $subscriptionId -UseSecondaryRegion
$targetResourceId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/{targetResourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{targetServerName}/databases/{targetDatabaseName}"
$secretURI = "https://{crr-key-vault}.vault.azure.net/secrets/{secret-for-crr}"
$OssRestoreReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation $vault.ReplicatedRegion[0] -RestoreType AlternateLocation -RecoveryPoint $recoveryPointsCrr[0].Property.RecoveryPointId -TargetResourceId $targetResourceId -SecretStoreURI $secretURI -SecretStoreType AzureKeyVault

ObjectType                                  SourceDataStoreType SourceResourceId RecoveryPointId
----------                                  ------------------- ---------------- ---------------
AzureBackupRecoveryPointBasedRestoreRequest VaultStore                           d49aeb83264456ccab92a105cade9afe

第一和第二個命令會從 Azure 資源圖表擷取保存庫和備份實例。 第三個命令是用來從次要區域擷取恢復點以進行跨區域還原。 最後一個命令會建構跨區域還原要求物件,以作為數據源類型 AzureDatabaseForPostgreSQL 的資料庫還原至替代位置。 請注意,我們將 RestoreLocation 參數設定為 $vault。ReplicatedRegion[0] (配對區域)而不是$vault。一般還原的位置。 使用 Test-AzDataProtectionBackupInstanceRestore,Start-AzDataProtectionBackupInstanceRestore 命令來驗證和觸發還原。

範例 6:取得跨區域還原要求物件,以作為數據源類型的 AzureDatabaseForPostgreSQL 資料庫進行還原

$vault = Search-AzDataProtectionBackupVaultInAzGraph -ResourceGroup $ResourceGroupName -Subscription $SubscriptionId -Vault $VaultName
$instance = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $subscriptionId  -ResourceGroup  $resourceGroupName  -Vault $vaultName -DatasourceType AzureDatabaseForPostgreSQL
$recoveryPointsCrr = Get-AzDataProtectionRecoveryPoint -BackupInstanceName $instance.Name -ResourceGroupName $resourceGroupName -VaultName $vaultName -SubscriptionId $subscriptionId -UseSecondaryRegion
$targetContainerURI = "https://{targetStorageAccountName}.blob.core.windows.net/{targetContainerName}"
$fileNamePrefix = "oss-pstest-crrasfiles"
$OssRestoreReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation $vault.ReplicatedRegion[0] -RestoreType RestoreAsFiles -RecoveryPoint $recoveryPointsCrr[0].Property.RecoveryPointId -TargetContainerURI $targetContainerURI -FileNamePrefix $fileNamePrefix

ObjectType                                  SourceDataStoreType SourceResourceId RecoveryPointId
----------                                  ------------------- ---------------- ---------------
AzureBackupRecoveryPointBasedRestoreRequest VaultStore                           d49aeb83264456ccab92a105cade9afe

第一和第二個命令會從 Azure 資源圖表擷取保存庫和備份實例。 第三個命令是用來從次要區域擷取恢復點以進行跨區域還原。 最後一個命令會建構跨區域還原要求物件,以作為數據源類型 AzureDatabaseForPostgreSQL 的檔案進行還原。 請注意,我們將 RestoreLocation 參數設定為 $vault。ReplicatedRegion[0] (配對區域)而不是$vault。一般還原的位置。 使用 Test-AzDataProtectionBackupInstanceRestore,Start-AzDataProtectionBackupInstanceRestore 命令來驗證和觸發還原。

範例 7:取得 AzureKubernetesService 替代位置保存還原的還原要求物件

$subId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$resourceGroupName = "resourceGroupName"
$vaultName = "vaultName"
$location = "eastasia"
$snapshotResourceGroupId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/stagingRG"
$stagingStorageAccount = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/stagingRG/providers/Microsoft.Storage/storageAccounts/snapshotsa"
$targetAKSClusterARMId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetRG/providers/Microsoft.ContainerService/managedClusters/targetKubernetesCluster"

$instance = Get-AzDataProtectionBackupInstance -SubscriptionId $subId -ResourceGroupName $resourceGroupName -VaultName $vaultName | Where-Object { $_.Name -match "aks-cluster-name" }
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId $subId -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstanceName $instance.Name

 $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData -IncludeClusterScopeResource $true -StagingResourceGroupId $snapshotResourceGroupId -StagingStorageAccountId $stagingStorageAccount -IncludedNamespace "hrweb" -NamespaceMapping @{"hrweb"="hrwebrestore"}

$aksALRRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore VaultStore -RestoreLocation $location -RestoreType AlternateLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -TargetResourceId $targetAKSClusterARMId

首先,我們會初始化將在還原腳本中使用的必要變數。 然後,我們會擷取實例的備份實例和恢復點。 接下來,我們會初始化 Restore Configuration 用戶端物件,用來設定還原要求客戶端物件。 請注意,對於 AzureKubernetesService 的保存庫還原,我們已傳遞 StagingResourceGroupId 和 StagingStorageAccountId 參數。

然後,我們會初始化 Azure Kubernetes Service (AKS) 替代位置還原的還原要求物件。 請注意,$aksRestoreCriteria 物件包含保存庫/作業層還原所需的參數。 RestoreConfiguration 物件會傳遞至 Initialize-AzDataProtectionRestoreRequest Cmdlet,以建立還原要求物件。 接著會使用還原要求對象來觸發還原作業。

參數

-BackupInstance

備份實例物件以觸發原始地區設定還原。 若要建構,請參閱BACKUPINSTANCE屬性和建立哈希表的NOTES一節。

類型:BackupInstanceResource
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-ContainersList

專案層級復原的容器名稱。

類型:String[]
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-DatasourceType

數據源類型

類型:DatasourceTypes
接受的值:AzureDisk, AzureBlob, AzureDatabaseForPostgreSQL, AzureKubernetesService, AzureDatabaseForPGFlexServer, AzureDatabaseForMySQL
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-FileNamePrefix

要加上還原備份數據的檔名。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-FromPrefixPattern

指定 PITR 的 Blob 還原開始範圍。 您可以使用此選項,為每個容器中要還原的 Blob 子集指定起始範圍。 使用正斜線 (/) 來分隔容器名稱與 Blob 前置詞模式。

類型:String[]
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ItemLevelRecovery

切換參數以啟用專案層級復原。

類型:SwitchParameter
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-PointInTime

還原的時間點。

類型:DateTime
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-PrefixMatch

使用此參數,依容器中的前置詞篩選區塊 Blob,以取得替代位置 ILR。 當您指定前置詞時,只會還原容器中符合該前置詞的 Blob。 此參數的輸入是哈希表,其中每個索引鍵都是容器名稱,而每個值都是該容器的字串前置詞陣列。

類型:Hashtable
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-RecoveryPoint

要還原之恢復點的標識碼。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-RehydrationDuration

封存恢復點保持凍結的解除凍結持續時間,解除凍結持續時間的預設值為 15。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-RehydrationPriority

封存恢復點的解除凍結優先順序。 這個參數是解除凍結封存點還原的必要參數。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-RestoreConfiguration

還原組態以進行還原。 使用此參數搭配 AzureKubernetesService 還原。

類型:PSObject
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-RestoreLocation

目標還原位置

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-RestoreType

還原目標類型

類型:RestoreTargetType
接受的值:AlternateLocation, OriginalLocation, RestoreAsFiles
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-SecretStoreType

秘密存放區類型,用於數據源的秘密存放區驗證。 此參數目前僅支援 AzureDatabaseForPostgreSQL。

類型:SecretStoreTypes
接受的值:AzureKeyVault
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-SecretStoreURI

秘密存放區驗證數據源的秘密 URI。 此參數目前僅支援 AzureDatabaseForPostgreSQL。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-SourceDataStore

恢復點的 DataStore 類型

類型:DataStoreType
接受的值:ArchiveStore, OperationalStore, VaultStore
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-TargetContainerURI

將備份數據還原為檔案的目標記憶體帳戶容器標識碼。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-TargetResourceId

指定在替代位置還原備份數據的目標資源標識碼。 例如,針對 workloadType AzureDatabaseForPostgreSQL,提供您想要還原的目標資料庫 ARM 標識碼。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-TargetResourceIdForRestoreAsFile

將備份數據還原為檔案的目標記憶體帳戶容器 ARM 識別碼。 當備份保存庫上停用跨訂用帳戶還原時,需要此參數才能還原為檔案。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ToPrefixPattern

指定 PITR 的 Blob 還原結束範圍。 您可以使用此選項,為每個容器中要還原的 Blob 子集指定結束範圍。 使用正斜線 (/) 來分隔容器名稱與 Blob 前置詞模式。

類型:String[]
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

輸出

IAzureBackupRestoreRequest