还原现有专用 SQL 池(以前称为 SQL DW)

本文介绍如何通过 Azure 门户和 PowerShell 还原现有专用 SQL 池(之前称为 SQL DW)。

注意

若要与 Azure 交互,建议使用 Azure Az PowerShell 模块。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

验证 DTU 容量。 每个池都由一个具有默认 DTU 配额的逻辑 SQL server(例如 myserver.database.chinacloudapi.cn)托管。 验证该服务器的剩余 DTU 配额是否足够进行数据库还原。

准备阶段

  1. 确保安装 Azure PowerShell
  2. 有一个现有的还原点,需要从该点进行还原。 若要创建新的还原,请参阅教程:新建用户定义的还原点

通过 PowerShell 还原现有专用 SQL 池(之前称为 SQL DW)

若要从还原点还原现有专用 SQL 池(之前称为 SQL DW),请使用 Restore-AzSqlDatabase PowerShell cmdlet。

  1. 打开 PowerShell。

  2. 连接到 Azure 帐户,并列出与帐户关联的所有订阅。

  3. 选择包含要还原的数据库的订阅。

  4. 列出专用 SQL 池(之前称为 SQL DW)的还原点。

  5. 使用 RestorePointCreationDate 选取所需的还原点。

  6. 使用 Restore-AzSqlDatabase PowerShell cmdlet 将专用 SQL 池(之前称为 SQL DW)还原到所需还原点。

    1. 若要将专用 SQL 池(以前称为 SQL DW)还原到另一服务器,请确保指定其他服务器名称。 该服务器也可以位于另一资源组和区域中。
    2. 若要还原到其他订阅,请参阅以下部分
  7. 验证已还原的专用 SQL 池(之前称为 SQL DW)是否处于联机状态。

  8. 完成还原后,即可按在恢复后配置数据库中的说明配置恢复的专用 SQL 池(之前称为 SQL DW)。


$SubscriptionName="<YourSubscriptionName>"
$ResourceGroupName="<YourResourceGroupName>"
$ServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.chinacloudapi.cn
#$TargetResourceGroupName="<YourTargetResourceGroupName>" # uncomment to restore to a different server.
#$TargetServerName="<YourtargetServerNameWithoutURLSuffixSeeNote>"  
$DatabaseName="<YourDatabaseName>"
$NewDatabaseName="<YourDatabaseName>"

Connect-AzAccount -Environment AzureChinaCloud
Get-AzSubscription
Select-AzSubscription -SubscriptionName $SubscriptionName

# Or list all restore points
Get-AzSqlDatabaseRestorePoint -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName

# Get the specific database to restore
$Database = Get-AzSqlDatabase -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName

# Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
$PointInTime="<RestorePointCreationDate>"

# Restore database from a restore point
$RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $Database.ResourceGroupName -ServerName $Database.ServerName -TargetDatabaseName $NewDatabaseName –ResourceId $Database.ResourceID

# Use the following command to restore to a different server
#$TargetResourceGroupName = $Database.ResourceGroupName # for restoring to different server in same resourcegroup 
#$RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $TargetResourceGroupName -ServerName $TargetServerName -TargetDatabaseName $NewDatabaseName –ResourceId $Database.ResourceID

# Verify the status of restored database
$RestoredDatabase.status

通过 Azure 门户还原现有专用 SQL 池(之前称为 SQL DW)

  1. 登录到 Azure 门户

  2. 导航到要从其进行还原的专用 SQL 池。

  3. 在“概览”边栏选项卡顶部,选择“还原”。

    还原概述

  4. 选择“自动还原点”或“用户定义的还原点”。 如果专用 SQL 池(之前称为 SQL DW)没有任何自动还原点,请等待数小时或创建一个用户定义的还原点,然后再进行还原。 对于用户定义的还原点,请选择一个现有的,或者创建一个新的。 对于“服务器”,可以选取另一资源组和区域中的服务器,也可以创建一个新服务器。 在提供所有参数后,请单击“查看 + 还原”。

    自动还原点

通过 PowerShell 将现有的专用 SQL 池(以前称为 SQL DW)还原到其他订阅

这是用于还原现有专用 SQL 池的类似指南,但从以下说明中可以看到,应该在原始订阅中执行 Get-AzSqlDatabase PowerShell cmdlet,而 Restore-AzSqlDatabase PowerShell cmdlet 则应在目标订阅中执行。 请注意,执行还原的用户在源订阅和目标订阅中都必须有正确权限。

  1. 打开 PowerShell。

  2. 如果需要,请将 Az.Sql 模块更新到 3.8.0(或更高版本)

  3. 连接到 Azure 帐户,并列出与帐户关联的所有订阅。

  4. 选择包含要还原的数据库的订阅。

  5. 列出专用 SQL 池(之前称为 SQL DW)的还原点。

  6. 使用 RestorePointCreationDate 选取所需的还原点。

  7. 选择应在其中还原数据库的目标订阅。

  8. 使用 Restore-AzSqlDatabase PowerShell cmdlet 将专用 SQL 池(之前称为 SQL DW)还原到所需还原点。

  9. 验证已还原的专用 SQL 池(之前称为 SQL DW)是否处于联机状态。

$SourceSubscriptionName="<YourSubscriptionName>"
$SourceResourceGroupName="<YourResourceGroupName>"
$SourceServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.chinacloudapi.cn
$SourceDatabaseName="<YourDatabaseName>"
$TargetSubscriptionName="<YourTargetSubscriptionName>"
$TargetResourceGroupName="<YourTargetResourceGroupName>"
$TargetServerName="<YourTargetServerNameWithoutURLSuffixSeeNote>"  # Without database.chinacloudapi.cn
$TargetDatabaseName="<YourDatabaseName>"

# Update Az.Sql module to the latest version (3.8.0 or above)
# Update-Module -Name Az.Sql -RequiredVersion 3.8.0

Connect-AzAccount -Environment AzureChinaCloud
Get-AzSubscription
Select-AzSubscription -SubscriptionName $SourceSubscriptionName

# Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
$PointInTime="<RestorePointCreationDate>"
# Or list all restore points
Get-AzSqlDatabaseRestorePoint -ResourceGroupName $SourceResourceGroupName -ServerName $SourceServerName -DatabaseName $SourceDatabaseName

# Get the specific database to restore
$Database = Get-AzSqlDatabase -ResourceGroupName $SourceResourceGroupName -ServerName $SourceServerName -DatabaseName $SourceDatabaseName

# Switch context to the destination subscription
Select-AzSubscription -SubscriptionName $TargetSubscriptionName

# Restore database from a desired restore point of the source database to the target server in the desired subscription
$RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $TargetResourceGroupName -ServerName $TargetServerName -TargetDatabaseName $TargetDatabaseName –ResourceId $Database.ResourceID

# Verify the status of restored database
$RestoredDatabase.status

后续步骤