Restaurar um pool SQL dedicado existente

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

Nota

Esta documentação de orientação destina-se apenas a conjuntos de SQL dedicados em áreas de trabalho Azure Synapse. Para pools SQL dedicados autônomos (anteriormente SQL DW), consulte Restaurar um pool SQL dedicado existente (anteriormente SQL DW).

Restaurar um conjunto de SQL dedicado existente através do Synapse Studio

  1. Inicie sessão no portal do Azure.

  2. Navegue até o espaço de trabalho do Azure Synapse.

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

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

  5. Selecione Gerenciar pools.

  6. Selecione + Novo para criar um novo pool SQL dedicado no espaço de trabalho do Azure Synapse Analytics.

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

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

  8. Selecione Pontos de restauração automática ou Pontos de restauração definidos pelo usuário.

    Captura de ecrã do portal do Azure, página Criar conjunto SQL, página Definições adicionais. Para Tipo de ponto de restauração, o botão de opção Pontos de restauro automático está selecionado.

    • Se o pool SQL dedicado não tiver nenhum ponto de restauração automático, aguarde algumas horas ou crie um ponto de restauração definido pelo usuário antes de restaurar. Para Pontos de Restauração Definidos pelo Usuário, selecione um existente ou crie um novo.

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

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

    Nota

    Não é possível executar uma restauração in-loco de um pool SQL com o mesmo nome de um pool existente. Independentemente de o pool SQL estar no mesmo espaço de trabalho ou em um espaço de trabalho diferente.

  9. Selecione Rever + Criar.

Restaurar um conjunto de SQL dedicado existente através do portal do Azure

  1. Inicie sessão no portal do Azure.

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

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

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

  4. Selecione Pontos de restauração automática ou Pontos de restauração definidos pelo usuário.

    Se o pool SQL dedicado não tiver nenhum ponto de restauração automático, aguarde algumas horas ou crie um ponto de restauração definido pelo usuário antes de restaurar.

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

  5. Selecione Rever + Criar.

Restaurar um conjunto de SQL dedicado existente através do PowerShell

  1. Abra um 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 SQL a ser restaurado.

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

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

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

  7. Verifique se o pool 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 conjunto de SQL dedicado existente numa subscrição diferente através do PowerShell

Ao executar uma restauração entre assinaturas, um pool SQL dedicado em um espaço de trabalho Synapse do Azure só pode restaurar diretamente para um pool SQL dedicado autônomo (anteriormente SQL DW). Se for necessário restaurar um pool SQL dedicado em um espaço de trabalho do Azure Synapse para um espaço de trabalho na assinatura de destino, uma etapa de restauração adicional será necessária.

O exemplo do PowerShell a seguir é semelhante ao anterior, no entanto, há três diferenças principais:

  • Depois de recuperar o objeto do Pool SQL a ser restaurado, o contexto da assinatura precisa ser alternado para o nome da assinatura de destino (ou destino).
  • Ao executar 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 restaurar para um espaço de trabalho do Azure Synapse na assinatura de destino. Descomente os comandos do PowerShell conforme descrito no exemplo.

Passos:

  1. Abra um terminal do PowerShell.

  2. Atualize o módulo Az.Sql para 3.8.0 (ou superior) se estiver em uma versão mais antiga usando Update-Moduleo . Caso contrário, causará 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 SQL a ser restaurado.

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

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

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

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

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

  10. Se o destino desejado for um Synapse Workspace, descomente o código para executar a etapa de restauração adicional.

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

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

    3. Execute a restauração para o espaço de trabalho desejado do Azure Synapse.

      $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
      
      

Resolver 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 de implantações de grupo de recursos de uma exceção de tempo limite.

Este tempo limite pode ser ignorado. Revise a página dedicada do pool SQL no portal do Azure e ela ainda pode ter o status de "Restaurando" e, eventualmente, fará a transição para "Online".

Captura de tela da caixa de diálogo do pool SQL com o status que mostra a restauração.