Partilhar via


Restaurar um conjunto de SQL dedicado a partir de uma área de trabalho eliminada.

Neste artigo, você aprenderá a restaurar um pool SQL dedicado no Azure Synapse Analytics após uma queda acidental de um espaço de trabalho usando o PowerShell.

Nota

Esta documentação de orientação destina-se apenas a conjuntos de SQL dedicados em áreas de trabalho Azure Synapse. Para conjuntos de SQL dedicados autónomos (anteriormente SQL DW), siga a documentação de orientação Restaurar o conjunto de sql a partir do servidor eliminado.

Antes de começar

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Restaurar o pool SQL a partir do espaço de trabalho descartado

O script de exemplo a seguir realiza estas etapas:

  1. Abrir o PowerShell

  2. Ligar à sua conta do Azure

  3. Defina o contexto para a subscrição que contém a área de trabalho que foi removida.

  4. Determine a data em que o espaço de trabalho foi descartado. Esta etapa recupera a data e a hora exatas em que o pool SQL do espaço de trabalho foi descartado.

    • Esta etapa pressupõe que o espaço de trabalho com o mesmo nome, grupo de recursos e os mesmos valores ainda esteja disponível.
    • Caso contrário, recrie o espaço de trabalho descartado com o mesmo nome do espaço de trabalho, nome do grupo de recursos, região e todos os mesmos valores do espaço de trabalho descartado anterior.
  5. Construa uma cadeia de caracteres o ID do recurso do pool sql que você deseja recuperar. O formato requer Microsoft.Sql. Isso inclui a data e a hora em que o servidor foi descartado.

  6. Restaure o banco de dados a partir do espaço de trabalho descartado. Restaure para o espaço de trabalho de destino com o pool SQL de origem.

  7. Verifique o estado da base de dados recuperada como "online".

    $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
    

Resolver problemas

Se a mensagem "Ocorreu um erro inesperado durante o processamento da solicitação." for recebida, o banco de dados original pode não ter nenhum ponto de recuperação disponível devido ao espaço de trabalho original ser de curta duração. Normalmente, ocorre quando o espaço de trabalho existe por menos de uma hora.