Ripristinare un pool SQL dedicato esistente
Questo articolo illustra come ripristinare un pool SQL dedicato esistente in Azure Synapse Analytics usando portale di Azure, Synapse Studio e PowerShell. Questo articolo si applica sia ai ripristini che ai ripristini geografici.
Nota
Queste indicazioni sono esclusivamente per i pool SQL dedicati nelle aree di lavoro Azure Synapse. Per i pool SQL dedicati autonomi (in precedenza SQL Data Warehouse), vedere Ripristinare un pool SQL dedicato esistente (in precedenza SQL Data Warehouse).
Ripristinare un pool SQL dedicato esistente tramite Synapse Studio
Accedere al portale di Azure.
Passare all'area di lavoro di Azure Synapse.
In Getting Started -Open Synapse Studio (Introduzione -> Apri Synapse Studio) selezionare Open (Apri).
Nel riquadro di spostamento a sinistra selezionare Dati.
Selezionare Gestisci pool.
Selezionare + Nuovo per creare un nuovo pool SQL dedicato nell'area di lavoro Azure Synapse Analytics.
Nella scheda Impostazioni aggiuntivo selezionare un punto di ripristino da cui eseguire il ripristino.
Per eseguire un ripristino geografico, selezionare l'area di lavoro e il pool SQL dedicato da ripristinare.
Selezionare Punto di ripristino automatico o Punti di ripristino definiti dall'utente.
Se il pool SQL dedicato non dispone di punti di ripristino automatici, attendere alcune ore o creare un punto di ripristino definito dall'utente prima del ripristino. Per Punti di ripristino definiti dall'utente, selezionare uno esistente o crearne uno nuovo.
Per ripristinare un pool SQL dedicato da un'area di lavoro diversa, selezionare Nuovo pool SQL dedicato dall'area di lavoro corrente. Nella scheda Impostazioni aggiuntive individuare l'opzione Usa dati esistenti e selezionare l'opzione Punto di ripristino . Come illustrato nello screenshot precedente, è quindi possibile selezionare il nome del server o dell'area di lavoro da cui è possibile eseguire il ripristino.
Se si ripristina un backup geografico, selezionare l'area di lavoro che si trova nell'area di origine e il pool SQL dedicato da ripristinare.
Nota
Non è possibile eseguire un ripristino sul posto di un pool SQL con lo stesso nome di un pool esistente. Indipendentemente dal pool SQL che si trova nella stessa area di lavoro o in un'area di lavoro diversa.
Selezionare Rivedi e crea.
Ripristinare un pool SQL dedicato esistente tramite il portale di Azure
Accedere al portale di Azure.
Passare al pool SQL dedicato da cui si vuole eseguire il ripristino.
Nella parte superiore della pagina Panoramica selezionare Ripristina.
Selezionare Punto di ripristino automatico o Punti di ripristino definiti dall'utente.
Se il pool SQL dedicato non dispone di punti di ripristino automatici, attendere alcune ore o creare un punto di ripristino definito dall'utente prima del ripristino.
Per eseguire un ripristino geografico, selezionare l'area di lavoro e il pool SQL dedicato da ripristinare.
Selezionare Rivedi e crea.
Ripristinare un pool SQL dedicato esistente tramite PowerShell
Aprire un terminale di PowerShell.
Connettersi al proprio account Azure ed elencare tutte le sottoscrizioni associate all'account.
Selezionare la sottoscrizione contenente il pool SQL da ripristinare.
Elencare i punti di ripristino per il pool SQL dedicato.
Selezionare il punto di ripristino desiderato utilizzando RestorePointCreationDate.
Ripristinare il pool SQL dedicato nel punto di ripristino desiderato usando il cmdlet di PowerShell Restore-AzSynapseSqlPool .
- Per ripristinare il pool SQL dedicato in un'area di lavoro diversa, assicurarsi di specificare l'altro nome dell'area di lavoro. Questa area di lavoro può anche trovarsi in un gruppo di risorse e un'area diversi.
- Per eseguire il ripristino in una sottoscrizione diversa, vedere Ripristinare un pool SQL dedicato esistente in una sottoscrizione diversa tramite PowerShell più avanti in questo articolo.
Verificare che il pool SQL dedicato ripristinato sia 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
Ripristinare un pool SQL dedicato esistente in una sottoscrizione diversa tramite PowerShell
Quando si esegue un ripristino tra sottoscrizioni, un pool SQL dedicato in un'area di lavoro di Azure Synapse può eseguire il ripristino solo direttamente in un pool SQL dedicato autonomo (in precedenza SQL Data Warehouse). Se è necessario ripristinare un pool SQL dedicato in un'area di lavoro di Azure Synapse in un'area di lavoro nella sottoscrizione di destinazione, è necessario un passaggio di ripristino aggiuntivo.
L'esempio di PowerShell seguente è simile al precedente, ma esistono tre differenze principali:
- Dopo aver recuperato l'oggetto pool SQL da ripristinare, il contesto della sottoscrizione deve essere passato al nome della sottoscrizione di destinazione (o di destinazione).
- Quando si esegue il ripristino, usare i moduli Az.Sql anziché i moduli Az.Synapse.
- Il codice di esempio seguente include passaggi aggiuntivi per il ripristino in un'area di lavoro di Azure Synapse nella sottoscrizione di destinazione. Rimuovere il commento dai comandi di PowerShell come descritto nell'esempio.
Passaggi:
Aprire un terminale di PowerShell.
Aggiornare il modulo Az.Sql alla versione 3.8.0 (o successiva) se in una versione precedente usando
Update-Module
. In caso contrario, causerà errori. Per convalidare la versione tramite 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} }
Connettersi al proprio account Azure ed elencare tutte le sottoscrizioni associate all'account.
Selezionare la sottoscrizione contenente il pool SQL da ripristinare.
Elencare i punti di ripristino per il pool SQL dedicato.
Selezionare il punto di ripristino desiderato usando RestorePointCreationDate.
Selezionare la sottoscrizione di destinazione in cui ripristinare il pool SQL.
Ripristinare il pool SQL dedicato nel punto di ripristino desiderato usando il cmdlet di PowerShell Restore-AzSqlDatabase .
Verificare che il pool SQL dedicato ripristinato (in precedenza SQL Data Warehouse) sia online.
Se la destinazione desiderata è un'area di lavoro di Synapse, rimuovere il commento dal codice per eseguire il passaggio di ripristino aggiuntivo.
Creare un punto di ripristino per il data warehouse appena creato.
Recuperare l'ultimo punto di ripristino creato usando la
Select -Last 1
sintassi .Eseguire il ripristino nell'area di lavoro di Azure Synapse desiderata.
$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
Risoluzione dei problemi
Un'operazione di ripristino può causare un errore di distribuzione in base a un'eccezione "RequestTimeout".
Questo timeout può essere ignorato. Esaminare la pagina del pool SQL dedicato nella portale di Azure e potrebbe avere ancora lo stato "Ripristino" e alla fine passerà a "Online".