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

Erro: "Ocorreu um erro inesperado durante o processamento da solicitação".

Se essa mensagem for recebida, o banco de dados original poderá não ter nenhum ponto de recuperação disponível devido ao espaço de trabalho original ter duração curta. Normalmente, isso ocorre quando o workspace existe há menos de uma hora.

Erro: "ValidationFailed: a ID do recurso fornecida não é válida para esta operação. Use um recurso de pool de SQL, por favor.

Se você receber esse erro, verifique se o sourceDatabaseId usa um formato de ID de recurso compatível e identifica o pool de SQL dedicado de origem pretendido.

Formatos com suporte

ID do recurso do Synapse SQL pool /subscriptions/{subscriptionId}/resourceGroups/{workspaceResourceGroup}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}

ID de Recurso do Banco de Dados SQL Gerenciado /subscriptions/{subscriptionId}/resourceGroups/{managedResourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}