Compartir vía


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:

  1. Abra PowerShell

  2. Conéctese a su cuenta de Azure.

  3. Establezca el contexto en la suscripción que contiene el área de trabajo que se eliminó.

  4. 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.
  5. 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.

  6. 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.

  7. 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.