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

从已删除的服务器还原专用 SQL 池(以前称为 SQL DW)

本文介绍如何使用 PowerShell 在意外删除服务器后在 Azure Synapse Analytics 中还原专用 SQL 池(以前称为 SQL DW)。

注意

本指南仅适用于独立专用 SQL 池(以前称为 SQL DW)。 有关 Azure Synapse Analytics 工作区中的专用 SQL 池,请参阅从已删除的工作区还原 SQL 池

开始之前

注意

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

从已删除的服务器还原 SQL 池

  1. 打开 PowerShell。

  2. 连接到 Azure 帐户。

  3. 将上下文设置为包含已删除服务器的订阅。

  4. 指定删除服务器的近似日期/时间。

  5. 为要从已删除的服务器恢复的数据库构造资源 ID。

  6. 从已删除的服务器还原数据库

  7. 验证已恢复数据库的状态是否为“联机”。

$SubscriptionID="<YourSubscriptionID>"
$ResourceGroupName="<YourResourceGroupName>"
$ServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.windows.net
$DatabaseName="<YourDatabaseName>"
$TargetServerName="<YourtargetServerNameWithoutURLSuffixSeeNote>"  
$TargetDatabaseName="<YourDatabaseName>"

Connect-AzAccount
Set-AzContext -SubscriptionId $SubscriptionID

# Define the approximate point in time the server was dropped as DroppedDateTime "yyyy-MM-ddThh:mm:ssZ" (ex. 2022-01-01T16:15:00Z)
$PointInTime="<DroppedDateTime>" 
$DroppedDateTime = Get-Date -Date $PointInTime 

# construct the resource ID of the database you wish to recover. The format required Microsoft.Sql. This includes the approximate date time the server was dropped.
$SourceDatabaseID = "/subscriptions/"+$SubscriptionID+"/resourceGroups/"+$ResourceGroupName+"/providers/Microsoft.Sql/servers/"+$ServerName+"/restorableDroppedDatabases/"+$DatabaseName+","+$DroppedDateTime.ToUniversalTime().ToFileTimeUtc().ToString()

# Restore to target workspace with the source database.
$RestoredDatabase = Restore-AzSqlDatabase -FromDeletedDatabaseBackup -DeletionDate $DroppedDateTime -ResourceGroupName $ResourceGroupName -ServerName $TargetServerName -TargetDatabaseName $TargetDatabaseName -ResourceId $SourceDatabaseID 

# Verify the status of restored database
$RestoredDatabase.status

疑难解答

如果收到“处理请求时出现意外错误。”消息,则表明原始服务器可能因生存期较短而没有任何可用的恢复点。 通常,如果服务器存在不到一小时,则会发生这种情况。