Restaurar um pool de SQL dedicado existente

Neste artigo, você aprenderá a restaurar um pool de SQL dedicado existente no Azure Synapse Analytics usando o portal do Azure, o Synapse Studio e o PowerShell. Este artigo se aplica a restaurações e restaurações geográficas.

Observação

Essa orientação é para pools de SQL dedicados somente em workspaces do Azure Synapse. Para os pools autônomos de SQL dedicado (antigo SQL DW), confira Restaurar um pool de SQL dedicado existente (antigo SQL DW).

Restaurar um pool de SQL dedicado existente por meio do Synapse Studio

  1. Entre no portal do Azure.

  2. Acesse o workspace do Azure Synapse.

  3. Em Introdução – >Abrir Synapse Studio, selecione Abrir. Captura de tela do Synapse Studio mostrando a caixa Abrir o Synapse Studio e o link Abrir.

  4. No painel de navegação à esquerda, selecione Dados.

  5. Selecione Gerenciar pools.

  6. Selecione + Novo para criar um novo pool de SQL dedicado no workspace do Azure Synapse Analytics.

  7. Na guia Configurações Adicionais, selecione um Ponto de restauração do qual restaurar.

    Se quiser executar uma restauração geográfica, selecione o espaço de trabalho e o pool de SQL dedicado que deseja recuperar.

  8. Selecione Pontos de Restauração Automática ou Pontos de Restauração Definido Pelo Usuário.

    Captura de tela do portal do Azure, página Criar pool de SQL, página Configurações adicionais. Em Tipo de ponto de restauração, o botão de opção Pontos de restauração automática está selecionado.

    • Se o pool de SQL dedicado não tiver pontos de restauração automática, aguarde algumas horas ou crie um ponto de restauração definido pelo usuário antes de fazer a restauração. Para usar pontos de restauração definidos pelo usuário, selecione um existente ou crie um.

    • Se você quiser restaurar um pool de SQL dedicado em um workspace diferente, selecione Novo pool de SQL dedicado no workspace atual. Na guia Configurações adicionais, localize a opção Usar dados existentes e selecione a opção Ponto de Restauração. Conforme mostrado na captura de tela acima, você pode selecionar o nome do servidor ou workspace no qual você pode restaurar.

    • Se você estiver restaurando um backup geográfico, selecione o workspace localizado na região de origem e o pool de SQL dedicado que deseja restaurar.

    Observação

    Você não pode executar uma restauração in-loco de um pool de SQL com o mesmo nome que um pool existente. Independentemente de o pool de SQL estar no mesmo workspace ou em um workspace diferente.

  9. Selecione Examinar + criar.

Restaurar um pool de SQL dedicado existente por meio do portal do Azure

  1. Entre no portal do Azure.

  2. Navegue até o pool de SQL dedicado do qual deseja restaurar.

  3. Na parte superior da página Visão geral, selecione Restaurar.

    Captura de tela do portal do Azure mostrando a página de visão geral do pool de SQL. O botão Restaurar está realçado.

  4. Selecione Pontos de Restauração Automática ou Pontos de Restauração Definido Pelo Usuário.

    Se o pool de SQL dedicado não tiver pontos de restauração automática, aguarde algumas horas ou crie um ponto de restauração definido pelo usuário antes de fazer a restauração.

    Se quiser executar uma restauração geográfica, selecione o espaço de trabalho e o pool de SQL dedicado que deseja recuperar.

  5. Selecione Examinar + criar.

Restaurar um pool de SQL dedicado existente por meio do PowerShell

  1. Abra o terminal do PowerShell.

  2. Conecte-se à sua conta do Azure e liste todas as assinaturas associadas à sua conta.

  3. Selecione a assinatura que contém o pool de SQL a ser restaurado.

  4. Liste os pontos de restauração para o pool de SQL dedicado.

  5. Selecione o ponto de restauração desejado usando o RestorePointCreationDate.

  6. Restaure o pool de SQL dedicado para o ponto de restauração desejado usando o cmdlet do PowerShellRestore-AzSynapseSqlPool.

  7. Verifique se o pool de SQL dedicado restaurado está online.

    
    $SubscriptionName="<YourSubscriptionName>"
    $ResourceGroupName="<YourResourceGroupName>"
    $WorkspaceName="<YourWorkspaceNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
    #$TargetResourceGroupName="<YourTargetResourceGroupName>" # uncomment to restore to a different workspace.
    #$TargetWorkspaceName="<YourtargetWorkspaceNameWithoutURLSuffixSeeNote>"  
    $SQLPoolName="<YourDatabaseName>"
    $NewSQLPoolName="<YourDatabaseName>"
    
    Connect-AzAccount
    Get-AzSubscription
    Select-AzSubscription -SubscriptionName $SubscriptionName
    
    # list all restore points
    Get-AzSynapseSqlPoolRestorePoint -ResourceGroupName $ResourceGroupName -WorkspaceName $WorkspaceName -Name $SQLPoolName
    # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
    $PointInTime="<RestorePointCreationDate>"
    
    # Get the specific SQL pool to restore
    $SQLPool = Get-AzSynapseSqlPool -ResourceGroupName $ResourceGroupName -WorkspaceName $WorkspaceName -Name $SQLPoolName
    # Transform Synapse SQL pool resource ID to SQL database ID because currently the restore command only accepts the SQL database ID format.
    $DatabaseID = $SQLPool.Id -replace "Microsoft.Synapse", "Microsoft.Sql" `
        -replace "workspaces", "servers" `
        -replace "sqlPools", "databases"
    
    # Restore database from a restore point
    $RestoredDatabase = Restore-AzSynapseSqlPool –FromRestorePoint -RestorePoint $PointInTime -ResourceGroupName $SQLPool.ResourceGroupName `
        -WorkspaceName $SQLPool.WorkspaceName -TargetSqlPoolName $NewSQLPoolName –ResourceId $DatabaseID -PerformanceLevel DW100c
    
    # Use the following command to restore to a different workspace
    #$TargetResourceGroupName = $SQLPool.ResourceGroupName # for restoring to different workspace in same resourcegroup 
    #$RestoredDatabase = Restore-AzSynapseSqlPool –FromRestorePoint -RestorePoint $PointInTime -ResourceGroupName $TargetResourceGroupName `
    #    -WorkspaceName $TargetWorkspaceName -TargetSqlPoolName $NewSQLPoolName –ResourceId $DatabaseID -PerformanceLevel DW100c
    
    # Verify the status of restored database
    $RestoredDatabase.status
    

Restaurar um pool de SQL dedicado existente para uma assinatura diferente por meio do PowerShell

Ao realizar uma restauração entre assinaturas, um pool de SQL dedicado em um workspace do Azure Synapse somente poderá ser restaurado diretamente para um pool de SQL dedicado autônomo (anteriormente SQL DW). Se for necessário restaurar um pool de SQL dedicado em um workspace do Azure Synapse para um workspace na assinatura de destino, será necessária uma etapa de restauração adicional.

O exemplo do PowerShell a seguir é semelhante ao anterior, mas com três diferenças principais:

  • Após recuperar o objeto do pool de SQL a ser restaurado, o contexto de assinatura precisará ser alternado para o nome de assinatura de destino (ou destino).
  • Ao realizar a restauração, use os módulos Az.Sql, em vez dos módulos Az.Synapse.
  • O código de exemplo abaixo tem etapas adicionais para ser restaurado em um workspace do Azure Synapse na assinatura de destino. Remova a marca de comentário dos comandos do PowerShell conforme descrito no exemplo.

Etapas:

  1. Abra o terminal do PowerShell.

  2. Atualize o Módulo Az.Sql para a 3.8.0 (ou superior) se estiver usando uma versão mais antiga com Update-Module. Caso contrário, ocorrerão falhas. Para validar sua versão por meio do PowerShell:

    foreach ($i in (get-module -ListAvailable | ?{$_.name -eq 'az.sql'}).Version) { $version = [string]$i.Major + "." + [string]$i.Minor; if ($version -gt 3.7) {write-host "Az.Sql version $version installed. Prequisite met."} else {update-module az.sql} }
    
  3. Conecte-se à sua conta do Azure e liste todas as assinaturas associadas à sua conta.

  4. Selecione a assinatura que contém o pool de SQL a ser restaurado.

  5. Liste os pontos de restauração para o pool de SQL dedicado.

  6. Selecione o ponto de restauração desejado usando o RestorePointCreationDate.

  7. Selecione a assinatura de destino na qual o pool de SQL deverá ser restaurado.

  8. Restaure o pool de SQL dedicado para o ponto de restauração desejado usando o cmdlet do PowerShell Restore-AzSqlDatabase.

  9. Verifique se o pool de SQL dedicado restaurado (anteriormente conhecido como SQL DW) está online.

  10. Se o destino desejado for um workspace do Synapse, remova a marca de comentário do código para executar a etapa de restauração adicional.

    1. Crie um ponto de restauração para o data warehouse recém-criado.

    2. Recupere o último ponto de restauração criado usando a sintaxe Select -Last 1.

    3. Execute a restauração no workspace do Azure Synapse desejado.

      $SourceSubscriptionName="<YourSubscriptionName>"
      $SourceResourceGroupName="<YourResourceGroupName>"
      $SourceWorkspaceName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
      $SourceSQLPoolName="<YourDatabaseName>"
      $TargetSubscriptionName="<YourTargetSubscriptionName>"
      $TargetResourceGroupName="<YourTargetResourceGroupName>"
      $TargetServerName="<YourTargetServerNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
      $TargetDatabaseName="<YourDatabaseName>"
      #$TargetWorkspaceName="<YourTargetWorkspaceName>" # uncomment if restore to an Azure Synapse workspace is required
      
      # Update Az.Sql module to the latest version (3.8.0 or above)
      # Update-Module -Name Az.Sql -RequiredVersion 3.8.0
      
      Connect-AzAccount
      Get-AzSubscription
      Select-AzSubscription -SubscriptionName $SourceSubscriptionName
      
      # list all restore points
      Get-AzSynapseSqlPoolRestorePoint -ResourceGroupName $SourceResourceGroupName -WorkspaceName $SourceWorkspaceName -Name $SourceSQLPoolName
      # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
      $PointInTime="<RestorePointCreationDate>"
      
      # Get the specific SQL pool to restore
      $SQLPool = Get-AzSynapseSqlPool -ResourceGroupName $SourceResourceGroupName -WorkspaceName $SourceWorkspaceName -Name $SourceSQLPoolName
      # Transform Synapse SQL pool resource ID to SQL database ID because currently the restore command only accepts the SQL database ID format.
      $DatabaseID = $SQLPool.Id -replace "Microsoft.Synapse", "Microsoft.Sql" `
          -replace "workspaces", "servers" `
          -replace "sqlPools", "databases"
      
      # Switch context to the destination subscription
      Select-AzSubscription -SubscriptionName $TargetSubscriptionName
      
      # Restore database from a desired restore point of the source database to the target server in the desired subscription
      $RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $TargetResourceGroupName `
          -ServerName $TargetServerName -TargetDatabaseName $TargetDatabaseName –ResourceId $DatabaseID
      
      # Verify the status of restored database
      $RestoredDatabase.status
      
      # uncomment below cmdlets to perform one more restore to push the SQL Pool to an existing workspace in the destination subscription
      # # Create restore point
      # New-AzSqlDatabaseRestorePoint -ResourceGroupName $RestoredDatabase.ResourceGroupName -ServerName $RestoredDatabase.ServerName `
      #     -DatabaseName $RestoredDatabase.DatabaseName -RestorePointLabel "UD-001"
      # # Gets the last restore point of the sql dw (will use the RestorePointCreationDate property)
      # $RestorePoint = Get-AzSqlDatabaseRestorePoint -ResourceGroupName $RestoredDatabase.ResourceGroupName -ServerName $RestoredDatabase.ServerName `
      #     -DatabaseName $RestoredDatabase.DatabaseName | Select -Last 1
      # # Restore to destination synapse workspace
      # $FinalRestore = Restore-AzSynapseSqlPool –FromRestorePoint -RestorePoint $RestorePoint.RestorePointCreationDate -ResourceGroupName $TargetResourceGroupName `
      #     -WorkspaceName $TargetWorkspaceName -TargetSqlPoolName $TargetDatabaseName –ResourceId $RestoredDatabase.ResourceID -PerformanceLevel DW100c
      
      

Solucionar problemas

Uma operação de restauração pode resultar em uma falha de implantação com base em uma exceção "RequestTimeout".

Captura de tela da caixa de diálogo das implantações do grupo de recursos de uma exceção de tempo limite.

Este tempo limite pode ser ignorado. Confira a página do pool de SQL dedicado no portal do Azure, que talvez ainda apresente um status "Restaurando" que, eventualmente, fará a transição para "Online".

Captura de tela da caixa de diálogo do pool de SQL com o status que mostra Restaurando.