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
Inicie sessão no portal do Azure.
Navegue até o espaço de trabalho do Azure Synapse.
Em Introdução -> Abrir Synapse Studio, selecione Abrir.
No painel de navegação esquerdo, selecione Dados.
Selecione Gerenciar pools.
Selecione + Novo para criar um novo pool SQL dedicado no espaço de trabalho do Azure Synapse Analytics.
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.
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. 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.
Selecione Rever + Criar.
Restaurar um conjunto de SQL dedicado existente através do portal do Azure
Inicie sessão no portal do Azure.
Navegue até o pool SQL dedicado do qual você deseja restaurar.
Na parte superior da página Descrição geral, selecione Restaurar.
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.
Selecione Rever + Criar.
Restaurar um conjunto de SQL dedicado existente através do PowerShell
Abra um terminal do PowerShell.
Conecte-se à sua conta do Azure e liste todas as assinaturas associadas à sua conta.
Selecione a assinatura que contém o pool SQL a ser restaurado.
Liste os pontos de restauração para o pool SQL dedicado.
Escolha o ponto de restauração desejado usando RestorePointCreationDate.
Restaure o pool SQL dedicado para o ponto de restauração desejado usando o cmdlet Restore-AzSynapseSqlPool PowerShell.
- Para restaurar o pool SQL dedicado para um espaço de trabalho diferente, certifique-se de especificar o nome do outro espaço de trabalho. Esse espaço de trabalho também pode estar em um grupo de recursos e região diferentes.
- Para restaurar para uma assinatura diferente, consulte Restaurar um pool SQL dedicado existente para uma assinatura diferente por meio do PowerShell , mais adiante neste artigo.
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:
Abra um terminal do PowerShell.
Atualize o módulo Az.Sql para 3.8.0 (ou superior) se estiver em uma versão mais antiga usando
Update-Module
o . 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} }
Conecte-se à sua conta do Azure e liste todas as assinaturas associadas à sua conta.
Selecione a assinatura que contém o pool SQL a ser restaurado.
Liste os pontos de restauração para o pool SQL dedicado.
Escolha o ponto de restauração desejado usando RestorePointCreationDate.
Selecione a assinatura de destino na qual o pool SQL deve ser restaurado.
Restaure o pool SQL dedicado para o ponto de restauração desejado usando o cmdlet Restore-AzSqlDatabase PowerShell.
Verifique se o pool SQL dedicado restaurado (anteriormente SQL DW) está online.
Se o destino desejado for um Synapse Workspace, descomente o código para executar a etapa de restauração adicional.
Crie um ponto de restauração para o armazém de dados recém-criado.
Recupere o último ponto de restauração criado usando a
Select -Last 1
sintaxe.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".
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".