你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Initialize-AzDataProtectionRestoreRequest

初始化还原请求对象,以便在受保护的备份实例上触发还原。

语法

Initialize-AzDataProtectionRestoreRequest
          -DatasourceType <DatasourceTypes>
          -SourceDataStore <DataStoreType>
          -RestoreLocation <String>
          -RestoreType <RestoreTargetType>
          -TargetResourceId <String>
          [-RecoveryPoint <String>]
          [-PointInTime <DateTime>]
          [-RehydrationDuration <String>]
          [-RehydrationPriority <String>]
          [-RestoreConfiguration <KubernetesClusterRestoreCriteria>]
          [-SecretStoreURI <String>]
          [-SecretStoreType <SecretStoreTypes>]
          [<CommonParameters>]
Initialize-AzDataProtectionRestoreRequest
          -DatasourceType <DatasourceTypes>
          -SourceDataStore <DataStoreType>
          -RestoreLocation <String>
          -RestoreType <RestoreTargetType>
          -TargetResourceId <String>
          [-RecoveryPoint <String>]
          [-RestoreConfiguration <KubernetesClusterRestoreCriteria>]
          [-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 <KubernetesClusterRestoreCriteria>]
          [-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 <KubernetesClusterRestoreCriteria>]
          [-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>]

说明

初始化还原请求对象,以便在受保护的备份实例上触发还原。

示例

示例 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/d” “container2/aab” “container2/abc” “container3” “container3-0” (还原整个 container3)

注意:范围不应相互重叠。 参考: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。ReplicationdRegion[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。ReplicationdRegion[0] (配对区域)而不是$vault。正常还原的位置。 使用 Test-AzDataProtectionBackupInstanceRestore、Start-AzDataProtectionBackupInstanceRestore 命令验证和触发还原。

参数

-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

要还原的恢复点的 ID。

类型: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 还原。 若要构造,请参阅 RESTORECONFIGURATION 属性的 NOTES 部分并创建哈希表。

类型:KubernetesClusterRestoreCriteria
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

恢复点的数据存储类型

类型:DataStoreType
接受的值:ArchiveStore, OperationalStore, VaultStore
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-TargetContainerURI

目标存储帐户容器 ID,备份数据将还原为文件。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-TargetResourceId

指定用于还原备用位置中的备份数据的目标资源 ID。 例如,为 workloadType AzureDatabaseForPostgreSQL 提供要还原到的目标数据库 ARM ID。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-TargetResourceIdForRestoreAsFile

目标存储帐户容器 ARM ID,备份数据将还原为文件。 在备份保管库上禁用跨订阅还原时,需要此参数作为文件进行还原。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ToPrefixPattern

指定 PITR 的 Blob 还原结束范围。 可以使用此选项为每个容器中的 blob 子集指定结束范围以还原。 使用正斜杠 (/) 将容器名称与 Blob 前缀模式分开。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输出

IAzureBackupRestoreRequest