Restauración de un grupo de SQL dedicado de un área de trabajo eliminada
En este artículo, aprenderá a restaurar un grupo de SQL dedicado en Azure Synapse Analytics después de una eliminación accidental de un área de trabajo mediante PowerShell.
Nota
Esta guía es para grupos de SQL dedicados únicamente en áreas de trabajo de Azure Synapse. Para grupos de SQL dedicados (anteriormente SQL DW) independientes, siga las instrucciones de Restauración de un grupo de SQL de un servidor eliminado.
Antes de empezar
Nota:
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Restauración del grupo de SQL del área de trabajo eliminada
El siguiente script de ejemplo realiza estos pasos:
Abra PowerShell
Conéctese a su cuenta de Azure.
Establezca el contexto en la suscripción que contiene el área de trabajo que se eliminó.
Determine la fecha y hora aproximada en que se eliminó el área de trabajo. Este paso recupera la fecha y hora exactas en que se eliminó el grupo de SQL del área de trabajo.
- En este paso se supone que el área de trabajo con el mismo grupo de recursos de nombre y los mismos valores sigue estando disponible.
- Si no es así, vuelva a crear el área de trabajo eliminada con el mismo nombre de área de trabajo, grupo de recursos, región y todos los mismos valores del área de trabajo eliminada anterior.
Cree una cadena que sea el identificador de recurso del grupo de SQL que desea recuperar. El formato requiere
Microsoft.Sql
. Esto incluye la fecha y hora en que se eliminó el servidor.Restaure la base de datos del área de trabajo eliminada. Realice la restauración al área de trabajo de destino con el grupo de SQL de origen.
Compruebe que el estado de la base de datos recuperada es "en línea".
$SubscriptionID = "<YourSubscriptionID>" $ResourceGroupName = "<YourResourceGroupName>" $WorkspaceName = "<YourWorkspaceNameWithoutURLSuffixSeeNote>" # Without sql.azuresynapse.net $DatabaseName = "<YourDatabaseName>" $TargetResourceGroupName = "<YourTargetResourceGroupName>" $TargetWorkspaceName = "<YourtargetServerNameWithoutURLSuffixSeeNote>" $TargetDatabaseName = "<YourDatabaseName>" Connect-AzAccount Set-AzContext -SubscriptionID $SubscriptionID # Get the exact date and time the workspace SQL pool was dropped. # This assumes that the workspace with the same name resource group and same values is still available. # If not, recreate the dropped workspace with the same workspace name, resource group name, region, # and all the same values from prior dropped workspace. # There should only be one selection to select from. $paramsGetDroppedSqlPool = @{ ResourceGroupName = $ResourceGroupName WorkspaceName = $WorkspaceName Name = $DatabaseName } $DroppedDateTime = Get-AzSynapseDroppedSqlPool @paramsGetDroppedSqlPool ` | Select-Object -ExpandProperty DeletionDate # Construct a string of the resource ID of the sql pool you wish to recover. # The format requires Microsoft.Sql. This includes the approximate date time the server was dropped. $SourceDatabaseID = "/subscriptions/$SubscriptionID/resourceGroups/$ResourceGroupName/providers/" ` + "Microsoft.Sql/servers/$WorkspaceName/databases/$DatabaseName" # Restore to the target workspace with the source SQL pool. $paramsRestoreSqlPool = @{ FromDroppedSqlPool = $true DeletionDate = $DroppedDateTime TargetSqlPoolName = $TargetDatabaseName ResourceGroupName = $TargetResourceGroupName WorkspaceName = $TargetWorkspaceName ResourceId = $SourceDatabaseID } $RestoredDatabase = Restore-AzSynapseSqlPool @paramsRestoreSqlPool # Verify the status of restored database $RestoredDatabase.status
Solución de problemas
Si se recibe el mensaje "Error inesperado durante el procesamiento de la solicitud.", es posible que la base de datos original no tenga puntos de recuperación disponibles debido a que el área de trabajo original existió poco tiempo. Normalmente, esto ocurre cuando el área de trabajo ha existido durante menos de una hora.