Restauración de un grupo de SQL dedicado
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
Inicie sesión en Azure Portal.
Vaya al área de trabajo de Azure Synapse.
En Introducción>Abrir Synapse Studio, seleccione Abrir.
En el panel de navegación izquierdo, seleccione Datos.
Seleccione Administrar grupos.
Seleccione + Nuevo para crear un grupo de SQL dedicado en el área de trabajo de Azure Synapse Analytics.
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.
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. 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 del grupo de SQL que esté en la misma área de trabajo o en otra.
Seleccione Revisar + crear.
Restauración de un grupo de SQL dedicado existente mediante Azure Portal
Inicie sesión en Azure Portal.
Vaya al grupo de SQL dedicado desde el que desea restaurar.
En la parte superior de la página Información general, seleccione Restaurar.
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.
Seleccione Revisar + crear.
Restauración de un grupo de SQL dedicado existente mediante PowerShell
Abra un terminal de PowerShell.
Conéctese a su cuenta de Azure y enumere todas las suscripciones asociadas a su cuenta.
Seleccione la suscripción que contiene el grupo de SQL que se va a restaurar.
Enumere los puntos de restauración del grupo de SQL dedicado.
Elija el punto de restauración deseado mediante RestorePointCreationDate.
Restaure el grupo de SQL dedicado al punto de restauración deseado mediante el cmdlet de PowerShell Restore-AzSynapseSqlPool.
- Para restaurar el grupo de SQL dedicado en un área de trabajo diferente, asegúrese de especificar el nombre de la otra área de trabajo. Este área de trabajo también puede estar en un grupo de recursos y una región diferentes.
- Para restaurar a una suscripción distinta, vea Restauración de un grupo de SQL dedicado existente a una suscripción distinta mediante PowerShell más adelante en este artículo.
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 grupo de SQL dedicado de un área de trabajo de Synapse solo se puede restaurar directamente en un grupo de SQL dedicado (anteriormente SQL DW) independiente. Si es necesario restaurar un grupo de SQL dedicado en un área de trabajo de Synapse en un área de trabajo de la suscripción de destino, se requiere realizar un paso 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 de SQL que se va a restaurar, el contexto de la suscripción debe cambiarse al nombre de la suscripción de destino (o 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. Quite la marca de comentario de los comandos de PowerShell, tal como se describe en el ejemplo.
Pasos:
Abra un terminal de PowerShell.
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. Prequisite met."} else {update-module az.sql} }
Conéctese a su cuenta de Azure y enumere todas las suscripciones asociadas a su cuenta.
Seleccione la suscripción que contiene el grupo de SQL que se va a restaurar.
Enumere los puntos de restauración del grupo de SQL dedicado.
Elija el punto de restauración deseado mediante RestorePointCreationDate.
Seleccione la suscripción de destino en la que se debe restaurar el grupo de SQL.
Restaure el grupo de SQL dedicado al punto de restauración deseado mediante el comando Restore-AzSqlDatabase de PowerShell.
Compruebe que el grupo de SQL dedicado (anteriormente SQL DW) restaurado está en línea.
Si el destino deseado es un área de trabajo de Synapse, quite la marca de comentario del código para realizar el paso de restauración adicional.
Cree un punto de restauración para el almacenamiento de datos recién creado.
Recupere el último punto de restauración creado mediante la sintaxis
Select -Last 1
.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".
Este error de tiempo de espera puede omitirse. Revise la página del grupo de SQL dedicado en Azure Portal y podría tener el estado "Restaurar" y, finalmente, pasará a "En línea".