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

Restore-AzSqlDatabase

还原 SQL 数据库。

语法

Restore-AzSqlDatabase
       [-FromPointInTimeBackup]
       -PointInTime <DateTime>
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       [-Edition <String>]
       [-ServiceObjectiveName <String>]
       [-ElasticPoolName <String>]
       [-AsJob]
       [-LicenseType <String>]
       [-HAReplicaCount <Int32>]
       [-BackupStorageRedundancy <String>]
       [-ZoneRedundant]
       [-Tag <Hashtable>]
       [-AssignIdentity]
       [-EncryptionProtector <String>]
       [-UserAssignedIdentityId <String[]>]
       [-KeyList <String[]>]
       [-FederatedClientId <Guid>]
       [-EncryptionProtectorAutoRotation]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-AzSqlDatabase
       [-FromPointInTimeBackup]
       -PointInTime <DateTime>
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       -Edition <String>
       [-AsJob]
       -ComputeGeneration <String>
       -VCore <Int32>
       [-LicenseType <String>]
       [-HAReplicaCount <Int32>]
       [-BackupStorageRedundancy <String>]
       [-ZoneRedundant]
       [-Tag <Hashtable>]
       [-AssignIdentity]
       [-EncryptionProtector <String>]
       [-UserAssignedIdentityId <String[]>]
       [-KeyList <String[]>]
       [-FederatedClientId <Guid>]
       [-EncryptionProtectorAutoRotation]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-AzSqlDatabase
       [-FromDeletedDatabaseBackup]
       [-PointInTime <DateTime>]
       -DeletionDate <DateTime>
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       [-Edition <String>]
       [-ServiceObjectiveName <String>]
       [-ElasticPoolName <String>]
       [-AsJob]
       [-LicenseType <String>]
       [-HAReplicaCount <Int32>]
       [-BackupStorageRedundancy <String>]
       [-ZoneRedundant]
       [-Tag <Hashtable>]
       [-AssignIdentity]
       [-EncryptionProtector <String>]
       [-UserAssignedIdentityId <String[]>]
       [-KeyList <String[]>]
       [-FederatedClientId <Guid>]
       [-EncryptionProtectorAutoRotation]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-AzSqlDatabase
       [-FromDeletedDatabaseBackup]
       [-PointInTime <DateTime>]
       -DeletionDate <DateTime>
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       -Edition <String>
       [-AsJob]
       -ComputeGeneration <String>
       -VCore <Int32>
       [-LicenseType <String>]
       [-HAReplicaCount <Int32>]
       [-BackupStorageRedundancy <String>]
       [-ZoneRedundant]
       [-Tag <Hashtable>]
       [-AssignIdentity]
       [-EncryptionProtector <String>]
       [-UserAssignedIdentityId <String[]>]
       [-KeyList <String[]>]
       [-FederatedClientId <Guid>]
       [-EncryptionProtectorAutoRotation]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-AzSqlDatabase
       [-FromGeoBackup]
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       [-Edition <String>]
       [-ServiceObjectiveName <String>]
       [-ElasticPoolName <String>]
       [-AsJob]
       [-LicenseType <String>]
       [-HAReplicaCount <Int32>]
       [-BackupStorageRedundancy <String>]
       [-ZoneRedundant]
       [-Tag <Hashtable>]
       [-AssignIdentity]
       [-EncryptionProtector <String>]
       [-UserAssignedIdentityId <String[]>]
       [-KeyList <String[]>]
       [-FederatedClientId <Guid>]
       [-EncryptionProtectorAutoRotation]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-AzSqlDatabase
       [-FromGeoBackup]
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       -Edition <String>
       [-AsJob]
       -ComputeGeneration <String>
       -VCore <Int32>
       [-LicenseType <String>]
       [-HAReplicaCount <Int32>]
       [-BackupStorageRedundancy <String>]
       [-ZoneRedundant]
       [-Tag <Hashtable>]
       [-AssignIdentity]
       [-EncryptionProtector <String>]
       [-UserAssignedIdentityId <String[]>]
       [-KeyList <String[]>]
       [-FederatedClientId <Guid>]
       [-EncryptionProtectorAutoRotation]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-AzSqlDatabase
       [-FromLongTermRetentionBackup]
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       [-Edition <String>]
       [-ServiceObjectiveName <String>]
       [-ElasticPoolName <String>]
       [-AsJob]
       [-LicenseType <String>]
       [-HAReplicaCount <Int32>]
       [-BackupStorageRedundancy <String>]
       [-ZoneRedundant]
       [-Tag <Hashtable>]
       [-AssignIdentity]
       [-EncryptionProtector <String>]
       [-UserAssignedIdentityId <String[]>]
       [-KeyList <String[]>]
       [-FederatedClientId <Guid>]
       [-EncryptionProtectorAutoRotation]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-AzSqlDatabase
       [-FromLongTermRetentionBackup]
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       -Edition <String>
       [-AsJob]
       -ComputeGeneration <String>
       -VCore <Int32>
       [-LicenseType <String>]
       [-HAReplicaCount <Int32>]
       [-BackupStorageRedundancy <String>]
       [-ZoneRedundant]
       [-Tag <Hashtable>]
       [-AssignIdentity]
       [-EncryptionProtector <String>]
       [-UserAssignedIdentityId <String[]>]
       [-KeyList <String[]>]
       [-FederatedClientId <Guid>]
       [-EncryptionProtectorAutoRotation]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

说明

Restore-AzSqlDatabase cmdlet 从异地冗余备份、已删除数据库的备份、长期保留备份或实时数据库中的时间点还原 SQL 数据库。 还原的数据库将创建为新数据库。 可以通过将 ElasticPoolName 参数设置为现有弹性池来创建弹性 SQL 数据库。 还可以对数据仓库数据库执行跨订阅还原。

示例

示例 1:从时间点还原数据库

$Database = Get-AzSqlDatabase -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
Restore-AzSqlDatabase -FromPointInTimeBackup -PointInTime UTCDateTime -ResourceGroupName $Database.ResourceGroupName -ServerName $Database.ServerName -TargetDatabaseName "RestoredDatabase" -ResourceId $Database.ResourceID -Edition "Standard" -ServiceObjectiveName "S2"

第一个命令获取名为 Database01 的 SQL 数据库,然后将其存储在$Database变量中。 第二个命令将$Database中的数据库从指定的时间点备份还原到名为 RestoredDatabase 的数据库。

示例 2:将数据库从时间点还原到弹性池

$Database = Get-AzSqlDatabase -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
Restore-AzSqlDatabase -FromPointInTimeBackup -PointInTime UTCDateTime -ResourceGroupName $Database.ResourceGroupName -ServerName $Database.ServerName -TargetDatabaseName "RestoredDatabase" -ResourceId $Database.ResourceID -ElasticPoolName "ElasticPool01"

第一个命令获取名为 Database01 的 SQL 数据库,然后将其存储在$Database变量中。 第二个命令将$Database中的数据库从指定的时间点备份还原到名为 elasticpool01 的弹性池中名为 RestoredDatabase 的 SQL 数据库。

示例 3:还原已删除的数据库

$DeletedDatabase = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
Restore-AzSqlDatabase -FromDeletedDatabaseBackup -DeletionDate $DeletedDatabase.DeletionDate -ResourceGroupName $DeletedDatabase.ResourceGroupName -ServerName $DeletedDatabase.ServerName -TargetDatabaseName "RestoredDatabase" -ResourceId $DeletedDatabase.ResourceID -Edition "Standard" -ServiceObjectiveName "S2" -PointInTime UTCDateTime

第一个命令使用 Get-AzSqlDeletedDatabaseBackup 获取要还原的已删除的数据库备份。 第二个命令使用 Restore-AzSqlDatabase cmdlet 从已删除的数据库备份启动还原。 如果未指定 -PointInTime 参数,数据库将还原到删除时间。

示例 4:将已删除的数据库还原到弹性池中

$DeletedDatabase = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName $resourceGroupName -ServerName $sqlServerName -DatabaseName 'DatabaseToRestore'
Restore-AzSqlDatabase -FromDeletedDatabaseBackup -DeletionDate $DeletedDatabase.DeletionDate -ResourceGroupName $DeletedDatabase.ResourceGroupName -ServerName $DeletedDatabase.ServerName -TargetDatabaseName "RestoredDatabase" -ResourceId $DeletedDatabase.ResourceID -ElasticPoolName "elasticpool01" -PointInTime UTCDateTime

第一个命令使用 Get-AzSqlDeletedDatabaseBackup 获取要还原的已删除的数据库备份。 第二个命令使用 Restore-AzSqlDatabase 从已删除的数据库备份启动还原。 如果未指定 -PointInTime 参数,数据库将还原到删除时间。

示例 5:异地还原数据库

$GeoBackup = Get-AzSqlDatabaseGeoBackup -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
Restore-AzSqlDatabase -FromGeoBackup -ResourceGroupName "TargetResourceGroup" -ServerName "TargetServer" -TargetDatabaseName "RestoredDatabase" -ResourceId $GeoBackup.ResourceID -Edition "Standard" -ServiceObjectiveName "S2"

第一个命令获取名为 Database01 的数据库的异地冗余备份,然后将其存储在$GeoBackup变量中。 第二个命令将$GeoBackup中的备份还原到名为 RestoredDatabase 的 SQL 数据库。

参数

-AsJob

在后台运行 cmdlet

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AssignIdentity

为此数据库生成并分配 Microsoft Entra 标识,以用于 Azure KeyVault 等密钥管理服务。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BackupStorageRedundancy

用于存储SQL 数据库备份的备份存储冗余。 选项包括:本地、区域、地理和 GeoZone。

Type:String
Accepted values:Local, Zone, Geo, GeoZone
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputeGeneration

要分配给还原数据库的计算生成

Type:String
Aliases:Family
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

用于与 azure 通信的凭据、帐户、租户和订阅

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DeletionDate

将删除日期指定为 DateTime 对象。 若要获取 DateTime 对象,请使用 Get-Date cmdlet。

Type:DateTime
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Edition

指定 SQL 数据库的版本。 此参数的可接受值为:

  • 基本
  • 标准
  • 高级
  • DataWarehouse
  • 免费
  • 拉伸
  • 常规用途
  • BusinessCritical
Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ElasticPoolName

指定要在其中放置 SQL 数据库的弹性池的名称。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EncryptionProtector

用于SQL 数据库的加密保护程序密钥。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EncryptionProtectorAutoRotation

AKV 密钥自动轮换状态

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-FederatedClientId

SQL 数据库的联合客户端 ID。 它用于跨租户 CMK 方案。

Type:Nullable<T>[Guid]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FromDeletedDatabaseBackup

指示此 cmdlet 从已删除 SQL 数据库的备份还原数据库。 可以使用 Get-AzSqlDeletedDatabaseBackup cmdlet 获取已删除 SQL 数据库的备份。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FromGeoBackup

指示此 cmdlet 从异地冗余备份还原 SQL 数据库。 可以使用 Get-AzSqlDatabaseGeoBackup cmdlet 获取异地冗余备份。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FromLongTermRetentionBackup

指示此 cmdlet 从长期保留备份还原 SQL 数据库。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FromPointInTimeBackup

指示此 cmdlet 从时间点备份还原 SQL 数据库。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-HAReplicaCount

用于存储SQL 数据库备份的 HA 副本计数。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-KeyList

SQL 数据库的 AKV 键列表。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LicenseType

Azure Sql 数据库的许可证类型。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PointInTime

指定要将 SQL 数据库还原到的 DateTime 对象的时间点。 若要获取 DateTime 对象,请使用 Get-Date cmdlet。 将此参数与 FromPointInTimeBackup 参数一起使用。

Type:DateTime
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ResourceGroupName

指定此 cmdlet 向其分配 SQL 数据库的资源组的名称。

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ResourceId

指定要还原的资源的 ID。

Type:String
Aliases:Id
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ServerName

指定 SQL 数据库服务器的名称。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ServiceObjectiveName

指定服务目标的名称。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Tag

要与 Azure Sql 数据库关联的标记

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TargetDatabaseName

指定要还原到的数据库的名称。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UserAssignedIdentityId

SQL 数据库的用户分配标识列表。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VCore

还原的 Azure Sql 数据库的 Vcore 数。

Type:Int32
Aliases:Capacity
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ZoneRedundant

要与 Azure Sql 数据库关联的区域冗余。 此属性仅适用于超大规模版本数据库。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

DateTime

String

输出

AzureSqlDatabaseModel