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

Restore-AzureRmSqlDatabase

还原 SQL 数据库。

警告

截至 2024 年 2 月 29 日,AzureRM PowerShell 模块已正式弃用。 为了确保持续获得支持和更新,建议用户从 AzureRM 迁移到 Az PowerShell 模块。

尽管 AzureRM 模块仍可能正常运行,但它不再维护或受支持,但会根据用户的自由裁量权和风险继续使用任何继续使用模块。 有关过渡到 Az 模块的指导,请参阅我们的迁移资源

语法

Restore-AzureRmSqlDatabase
       [-FromPointInTimeBackup]
       -PointInTime <DateTime>
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       [-Edition <String>]
       [-ServiceObjectiveName <String>]
       [-ElasticPoolName <String>]
       [-AsJob]
       [-LicenseType <String>]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]
Restore-AzureRmSqlDatabase
       [-FromPointInTimeBackup]
       -PointInTime <DateTime>
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       -Edition <String>
       [-AsJob]
       -ComputeGeneration <String>
       -VCore <Int32>
       [-LicenseType <String>]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]
Restore-AzureRmSqlDatabase
       [-FromDeletedDatabaseBackup]
       [-PointInTime <DateTime>]
       -DeletionDate <DateTime>
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       [-Edition <String>]
       [-ServiceObjectiveName <String>]
       [-ElasticPoolName <String>]
       [-AsJob]
       [-LicenseType <String>]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]
Restore-AzureRmSqlDatabase
       [-FromDeletedDatabaseBackup]
       [-PointInTime <DateTime>]
       -DeletionDate <DateTime>
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       -Edition <String>
       [-AsJob]
       -ComputeGeneration <String>
       -VCore <Int32>
       [-LicenseType <String>]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]
Restore-AzureRmSqlDatabase
       [-FromGeoBackup]
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       [-Edition <String>]
       [-ServiceObjectiveName <String>]
       [-ElasticPoolName <String>]
       [-AsJob]
       [-LicenseType <String>]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]
Restore-AzureRmSqlDatabase
       [-FromGeoBackup]
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       -Edition <String>
       [-AsJob]
       -ComputeGeneration <String>
       -VCore <Int32>
       [-LicenseType <String>]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]
Restore-AzureRmSqlDatabase
       [-FromLongTermRetentionBackup]
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       [-Edition <String>]
       [-ServiceObjectiveName <String>]
       [-ElasticPoolName <String>]
       [-AsJob]
       [-LicenseType <String>]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]
Restore-AzureRmSqlDatabase
       [-FromLongTermRetentionBackup]
       -ResourceId <String>
       -ServerName <String>
       -TargetDatabaseName <String>
       -Edition <String>
       [-AsJob]
       -ComputeGeneration <String>
       -VCore <Int32>
       [-LicenseType <String>]
       [-ResourceGroupName] <String>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]

说明

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

示例

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

PS C:\>$Database = Get-AzureRmSqlDatabase -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
PS C:\> Restore-AzureRmSqlDatabase -FromPointInTimeBackup -PointInTime UTCDateTime -ResourceGroupName $Database.ResourceGroupName -ServerName $Database.ServerName -TargetDatabaseName "RestoredDatabase" -ResourceId $Database.ResourceID -Edition "Standard" -ServiceObjectiveName "S2"

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

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

PS C:\>$Database = Get-AzureRmSqlDatabase -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
PS C:\> Restore-AzureRmSqlDatabase -FromPointInTimeBackup -PointInTime UTCDateTime -ResourceGroupName $Database.ResourceGroupName -ServerName $Database.ServerName -TargetDatabaseName "RestoredDatabase" -ResourceId $Database.ResourceID -ElasticPoolName "ElasticPool01"

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

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

PS C:\>$DeletedDatabase = Get-AzureRmSqlDeletedDatabaseBackup -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
PS C:\> Restore-AzureRmSqlDatabase -FromDeletedDatabaseBackup -DeletionDate $DeletedDatabase.DeletionDate -ResourceGroupName $DeletedDatabase.ResourceGroupName -ServerName $DeletedDatabase.ServerName -TargetDatabaseName "RestoredDatabase" -ResourceId $DeletedDatabase.ResourceID -Edition "Standard" -ServiceObjectiveName "S2" -PointInTime UTCDateTime

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

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

PS C:\>$DeletedDatabase = Get-AzureRmSqlDeletedDatabaseBackup -ResourceGroupName $resourceGroupName -ServerName $sqlServerName -DatabaseName 'DatabaseToRestore'
PS C:\> Restore-AzureRmSqlDatabase -FromDeletedDatabaseBackup -DeletionDate $DeletedDatabase.DeletionDate -ResourceGroupName $DeletedDatabase.ResourceGroupName -ServerName $DeletedDatabase.ServerName -TargetDatabaseName "RestoredDatabase" -ResourceId $DeletedDatabase.ResourceID -ElasticPoolName "elasticpool01" -PointInTime UTCDateTime

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

示例 5:异地还原数据库

PS C:\>$GeoBackup = Get-AzureRmSqlDatabaseGeoBackup -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database01"
PS C:\> Restore-AzureRmSqlDatabase -FromGeoBackup -ResourceGroupName "TargetResourceGroup" -ServerName "TargetServer" -TargetDatabaseName "RestoredDatabase" -ResourceId $GeoBackup.ResourceID -Edition "Standard" -RequestedServiceObjectiveName "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

-ComputeGeneration

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

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

-DefaultProfile

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

Type:IAzureContextContainer
Aliases: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

-FromDeletedDatabaseBackup

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

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

-FromGeoBackup

指示此 cmdlet 从异地冗余备份还原 SQL 数据库。 可以使用 Get-AzureRMSqlDatabaseGeoBackup 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

-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

-TargetDatabaseName

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

Type:String
Position:Named
Default value:None
Required:True
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

输入

DateTime

String

输出

AzureSqlDatabaseModel