还原 Azure SQL 数据仓库

本文介绍如何在 Azure 门户和 PowerShell 中执行以下操作:

  • 创建还原点
  • 从自动还原点或用户定义的还原点进行还原
  • 从已删除的数据库进行还原
  • 从用户定义的还原点创建数据仓库的副本

Note

截至 8 月 27 日,由于已知的回归,已禁用跨服务器还原。 我们将此问题视为需要解决的首要问题,正在努力进行修复。 由此产生的不便,我们深表歉意。

准备阶段

验证 DTU 容量。 每个 SQL 数据仓库都由一个具有默认 DTU 配额的 SQL 服务器(例如 myserver.database.chinacloudapi.cn)托管。 在还原 SQL 数据仓库之前,请确保 SQL Server 的剩余 DTU 配额足够进行数据库还原。 若要了解如何计算所需 DTU 或请求更多的 DTU,请参阅 请求 DTU 配额更改

通过 Powershell 进行还原

安装 PowerShell

若要对 SQL 数据仓库使用 Azure PowerShell,需要安装 Azure PowerShell 1.0 或更高版本。 可以通过运行 Get-Module -ListAvailable -Name AzureRM来检查版本。 可通过 Microsoft Web 平台安装程序安装最新版本。 有关安装最新版本的详细信息,请参阅如何安装和配置 Azure PowerShell

使用 PowerShell 还原活动或暂停的数据库

若要从还原点还原数据库,请使用 [Restore-AzureRmSqlDatabase][Restore-AzureRmSqlDatabase] PowerShell cmdlet。

  1. 打开 Windows PowerShell。

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

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

  4. 列出数据库的还原点。

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

    Note

    在还原时,可以指定不同的 ServiceObjectiveName (DWU) 或位于另一区域中的不同服务器。

  6. 将数据库还原到所需的还原点。

  7. 验证已还原的数据库是否处于联机状态。


$SubscriptionName="<YourSubscriptionName>"
$ResourceGroupName="<YourResourceGroupName>"
$ServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.chinacloudapi.cn
$DatabaseName="<YourDatabaseName>"
$NewDatabaseName="<YourDatabaseName>"

Connect-AzureRmAccount -EnvironmentName AzureChinaCloud
Get-AzureRmSubscription
Select-AzureRmSubscription -SubscriptionName $SubscriptionName

# List the last 10 database restore points
((Get-AzureRMSqlDatabaseRestorePoints -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName ($DatabaseName)).RestorePointCreationDate)[-10 .. -1]

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

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

# Pick desired restore point using RestorePointCreationDate
$PointInTime="<RestorePointCreationDate>"  

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

# Verify the status of restored database
$RestoredDatabase.status

Note

完成还原后,即可按恢复后配置数据库中的说明配置恢复的数据库。

使用 PowerShell 通过用户定义的还原点复制数据仓库

若要从用户定义的还原点还原数据库,请使用 [Restore-AzureRmSqlDatabase][Restore-AzureRmSqlDatabase] PowerShell cmdlet。

  1. 打开 Windows PowerShell。
  2. 连接到 Azure 帐户,并列出与帐户关联的所有订阅。
  3. 选择包含要还原的数据库的订阅。
  4. 为数据库的即时复制创建还原点
  5. 将数据库重命名为一个临时名称。
  6. 根据指定的 RestorePointLabel 检索最新还原点。
  7. 获取用于启动还原的数据库的资源 ID
  8. 将数据库还原到所需的还原点。
  9. 验证已还原的数据库是否处于联机状态。

$SubscriptionName="<YourSubscriptionName>"
$ResourceGroupName="<YourResourceGroupName>"
$ServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.chinacloudapi.cn
$DatabaseName="<YourDatabaseName>"
$TempDatabaseName = "<YourTemporaryDatabaseName>"
$Label = "<YourRestorePointLabel"

Connect-AzureRmAccount -EnvironmentName AzureChinaCloud
Get-AzureRmSubscription
Select-AzureRmSubscription -SubscriptionName $SubscriptionName

# Create a restore point of the original database
New-AzureRmSqlDatabaseRestorePoint -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -RestorePointLabel $Label

# Rename the database to a temporary name
Set-AzureRmSqlDatabase -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -NewName $TempDatabaseName

# Get the most recent restore point with the specified label
$LabelledRestorePoint = Get-AzureRmSqlDatabaseRestorePoints -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $TempDatabaseName | where {$_.RestorePointLabel -eq $Label} | sort {$_.RestorePointCreationDate} | select -Last 1

# Get the resource id of the database
$ResourceId = (Get-AzureRmSqlDatabase -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $TempDatabaseName).ResourceId

# Restore the database to its original name from the labelled restore point from the temporary database
$RestoredDatabase = Restore-AzureRmSqlDatabase -FromPointInTimeBackup -ResourceGroupName $ResourceGroupName -ServerName $ServerName -ResourceId $ResourceId -PointInTime $LabelledRestorePoint.RestorePointCreationDate -TargetDatabaseName $DatabaseName

# Verify the status of restored database
$RestoredDatabase.status

# The original temporary database can be deleted at this point

使用 PowerShell 还原删除的数据库

若要还原已删除的数据库,请使用 [Restore-AzureRmSqlDatabase][Restore-AzureRmSqlDatabase] cmdlet。

  1. 打开 Windows PowerShell。
  2. 连接到 Azure 帐户,并列出与帐户关联的所有订阅。
  3. 选择包含要还原的已删除数据库的订阅。
  4. 获取特定的已删除数据库。
  5. 还原已删除的数据库。
  6. 验证已还原的数据库是否处于联机状态。
$SubscriptionName="<YourSubscriptionName>"
$ResourceGroupName="<YourResourceGroupName>"
$ServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.chinacloudapi.cn
$DatabaseName="<YourDatabaseName>"
$NewDatabaseName="<YourDatabaseName>"

Connect-AzureRmAccount -EnvironmentName AzureChinaCloud
Get-AzureRmSubscription
Select-AzureRmSubscription -SubscriptionName $SubscriptionName

# Get the deleted database to restore
$DeletedDatabase = Get-AzureRmSqlDeletedDatabaseBackup -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName

# Restore deleted database
$RestoredDatabase = Restore-AzureRmSqlDatabase –FromDeletedDatabaseBackup –DeletionDate $DeletedDatabase.DeletionDate -ResourceGroupName $DeletedDatabase.ResourceGroupName -ServerName $DeletedDatabase.ServerName -TargetDatabaseName $NewDatabaseName –ResourceId $DeletedDatabase.ResourceID

# Verify the status of restored database
$RestoredDatabase.status

Note

完成还原后,即可按恢复后配置数据库中的说明配置恢复的数据库。

通过 Azure 门户进行还原

使用 Azure 门户创建用户定义的还原点

  1. 登录到 Azure 门户

  2. 导航到要为其创建还原点的 SQL 数据仓库。

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

    新建还原点

  4. 为还原点指定一个名称。

    还原点的名称

使用 Azure 门户还原活动或暂停的数据库

  1. 登录到 Azure 门户
  2. 导航到要从中进行还原的 SQL 数据仓库。
  3. 在“概览”边栏选项卡顶部,选择“还原”。

     还原概述

  4. 选择“自动还原点”或“用户定义的还原点”。

    自动还原点

  5. 对于用户定义的还原点,请选择还原点新建用户定义的还原点

    用户定义的还原点

通过 Azure 门户还原已删除的数据库

  1. 登录到 Azure 门户
  2. 导航到承载着已删除数据库的 SQL Server。
  3. 在目录中选择“已删除的数据库”图标。

    已删除的数据库

  4. 选择要还原的已删除数据库。

    选择“已删除的数据库”

  5. 指定一个新的数据库名称。

    指定数据库名称