Restaurar un grupo de SQL dedicado existente

Tip

Microsoft Fabric Data Warehouse es un almacenamiento relacional de escala empresarial en una base de lago de datos, con una arquitectura lista para el futuro, inteligencia artificial integrada y nuevas características. Si no está familiarizado con el almacenamiento de datos, comience con Fabric Data Warehouse. Las cargas de trabajo del grupo de SQL dedicadas pueden actualizarse a Fabric para acceder a nuevas funcionalidades en ciencia de datos, análisis en tiempo real e informes.

En este artículo, aprenderá a restaurar un grupo de SQL dedicado existente en Azure Synapse Analytics mediante Azure Portal, Synapse Studio y PowerShell. Este artículo se aplica a las restauraciones y a las restauraciones geográficas.

Nota:

Esta guía es para grupos de SQL dedicados únicamente en áreas de trabajo de Azure Synapse. Para los grupos de SQL dedicados independientes (anteriormente SQL DW), consulte Restauración de un grupo de SQL dedicado existente (anteriormente SQL DW).

Restauración de un grupo de SQL dedicado existente mediante Synapse Studio

  1. Inicie sesión en Azure Portal.

  2. Vaya al área de trabajo de Azure Synapse.

  3. En Introducción>Abrir Synapse Studio, seleccione Abrir. Captura de pantalla de Synapse Studio, que muestra el cuadro Abrir Synapse Studio y el vínculo Abrir.

  4. En el panel de navegación izquierdo, seleccione Datos.

  5. Seleccione Administrar grupos.

  6. Seleccione + Nuevo para crear un grupo de SQL dedicado en el área de trabajo de Azure Synapse Analytics.

  7. En la pestaña Configuración adicional, seleccione un punto de restauración desde el que restaurar.

    Si desea realizar una restauración geográfica, seleccione el área de trabajo y el grupo de SQL dedicado que quiere recuperar.

  8. Seleccione Puntos de restauración automáticos o Puntos de restauración definidos por el usuario.

    Captura de pantalla del portal de Azure, página Crear grupo SQL, página Opciones adicionales. En Tipo de punto de restauración, se selecciona el botón de opción Puntos de restauración automáticos.

    • Si el grupo de SQL dedicado no tiene ningún punto de restauración automática, espere unas horas o cree un punto de restauración definido por el usuario antes de llevar a cabo la restauración. En el caso de los puntos de restauración definidos por el usuario, seleccione uno existente o cree uno nuevo.

    • Si quiere restaurar un grupo de SQL dedicado desde otra área de trabajo, seleccione New dedicated SQL pool (Nuevo grupo de SQL dedicado) en el área de trabajo actual. En la pestaña Configuración adicional, busque Use los datos existentes y seleccione la opción Punto de restauración. Tal como se muestra en la captura de pantalla anterior, puede seleccionar el nombre del servidor o el área de trabajo desde el que puede restaurar.

    • Si va a restaurar una copia de seguridad geográfica, seleccione el área de trabajo que se encuentra en la región de origen y el grupo de SQL dedicado que quiere restaurar.

    Nota:

    No se puede realizar una restauración local de un grupo de SQL con el mismo nombre que un grupo existente. Independientemente de que el grupo de SQL esté en la misma área de trabajo o en una diferente.

  9. Seleccione Revisar + crear.

Restauración de un grupo de SQL dedicado existente mediante Azure Portal

  1. Inicie sesión en Azure Portal.

  2. Vaya al grupo de SQL dedicado desde el que desea restaurar.

  3. En la parte superior de la página Información general, seleccione Restaurar.

    Recorte de pantalla de Azure Portal en el que se muestra la página de información general del grupo de SQL. El botón Restaurar aparece resaltado.

  4. Seleccione Puntos de restauración automáticos o Puntos de restauración definidos por el usuario.

    Si el grupo de SQL dedicado no tiene ningún punto de restauración automática, espere unas horas o cree un punto de restauración definido por el usuario antes de llevar a cabo la restauración.

    Si desea realizar una restauración geográfica, seleccione el área de trabajo y el grupo de SQL dedicado que quiere recuperar.

  5. Seleccione Revisar + crear.

Restauración de un grupo de SQL dedicado existente mediante PowerShell

  1. Abra un terminal de PowerShell.

  2. Conéctese a su cuenta de Azure y enumere todas las suscripciones asociadas a su cuenta.

  3. Seleccione la suscripción que contiene el grupo de SQL que se va a restaurar.

  4. Enumere los puntos de restauración del grupo de SQL dedicado.

  5. Elija el punto de restauración deseado mediante RestorePointCreationDate.

  6. Restaure el grupo de SQL dedicado al punto de restauración deseado mediante el cmdlet de PowerShell Restore-AzSynapseSqlPool.

  7. Compruebe que el grupo de SQL dedicado restaurado está en línea.

    
    $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
    

Restauración de un grupo de SQL dedicado existente en otra suscripción mediante PowerShell

Al realizar una restauración entre suscripciones, un pool SQL dedicado en un área de trabajo de Azure Synapse solo se puede restaurar directamente a un pool SQL dedicado independiente (anteriormente SQL DW). Si es necesario restaurar una piscina de SQL dedicada en un espacio de trabajo de Azure Synapse a un espacio de trabajo en la suscripción de destino, se requiere realizar una etapa de restauración adicional.

El siguiente ejemplo de PowerShell es similar al anterior, pero hay tres diferencias principales:

  • Después de recuperar el objeto de grupo SQL que se va a restaurar, el contexto de la suscripción debe cambiarse al nombre de la suscripción de destino.
  • Al realizar la restauración, use los módulos Az.Sql en lugar de los módulos Az.Synapse.
  • El código de ejemplo siguiente tiene pasos adicionales para restaurar en un área de trabajo de Azure Synapse en la suscripción de destino. Descomente los comandos de PowerShell, tal como se describe en el ejemplo.

Pasos:

  1. Abra un terminal de PowerShell.

  2. Actualice el módulo Az.Sql a la versión 3.8.0 (o una posterior) si tiene una versión anterior mediante Update-Module. De lo contrario, surgirán errores. Para validar la versión mediante 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. Prerequisite met."} else {update-module az.sql} }
    
  3. Conéctese a su cuenta de Azure y enumere todas las suscripciones asociadas a su cuenta.

  4. Seleccione la suscripción que contiene el grupo de SQL que se va a restaurar.

  5. Enumere los puntos de restauración del grupo de SQL dedicado.

  6. Elija el punto de restauración deseado mediante RestorePointCreationDate.

  7. Seleccione la suscripción de destino en la que se debe restaurar el grupo de SQL.

  8. Restaure el grupo de SQL dedicado al punto de restauración deseado mediante el comando Restore-AzSqlDatabase de PowerShell.

  9. Compruebe que el grupo de SQL dedicado (anteriormente SQL DW) restaurado está en línea.

  10. Si el destino deseado es un espacio de trabajo de Synapse, descomente el código para realizar el paso de restauración adicional.

    1. Cree un punto de restauración para el almacenamiento de datos recién creado.

    2. Recupere el último punto de restauración creado mediante la sintaxis Select -Last 1.

    3. Realice la restauración en el área de trabajo de Azure Synapse deseada.

      $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
      
      

Solución de problemas

Una operación de restauración puede dar lugar a un error de implementación basado en una excepción "RequestTimeout".

Captura de pantalla del cuadro de diálogo de implementaciones de grupo de recursos que muestra una excepción de tiempo de espera.

Este tiempo de espera puede ser ignorado. Revise la página del grupo de SQL dedicado en el portal de Azure, donde podría tener el estado "Restaurando" y, con el tiempo, pasará a "En línea".

Captura de pantalla de un cuadro de diálogo del grupo de SQL que muestra el estado de restauración.