Compartilhar via


Restaurar um pool de SQL dedicado de um workspace excluído

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

Observação

Essa orientação é para pools de SQL dedicados somente em workspaces do Azure Synapse. Para pools de SQL dedicados autônomos (anteriormente SQL DW), siga as diretrizes em Restaurar pool de SQL do servidor excluído.

Antes de começar

Observação

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

Restaurar o pool de SQL do workspace removido

O seguinte script de exemplo realiza estas etapas:

  1. Abrir o PowerShell

  2. Conectar-se à sua conta do Azure.

  3. Defina o contexto para a assinatura que contém o workspace que foi removido.

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

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

  6. Restaurar o banco de dados do espaço de trabalho removido. Restaure para o espaço de trabalho de destino com o pool de SQL de origem.

  7. Verifique o status do banco de dados recuperado 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
    

Solucionar problemas

Se a mensagem "Ocorreu um erro inesperado ao processar a solicitação." for recebida, significa que o banco de dados original poderá não ter pontos de recuperação disponíveis devido à curta duração do workspace original. Normalmente, isso ocorre quando o workspace existe há menos de uma hora.