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

Tip

Microsoft Fabric Data Warehouse é um armazém relacional de escala empresarial com base de data lake, arquitetura pronta para o futuro, IA integrada e novos recursos. Se você não estiver familiarizado com o data warehouse, comece com Fabric Data Warehouse. As cargas de trabalho existentes de pools de SQL dedicados podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.

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 a data e a hora 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 nome e grupo de recursos 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. Crie uma string com a 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 da 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.