Ripristinare un pool SQL dedicato (in precedenza SQL Data Warehouse) esistente

Questo articolo illustra come ripristinare un pool SQL dedicato (in precedenza SQL Data Warehouse) esistente usando il portale di Azure e PowerShell.

Nota

Queste indicazioni sono solo per pool SQL dedicati autonomi (in precedenza SQL Data Warehouse). Per i pool SQL dedicati in un'area di lavoro di Azure Synapse Analytics, vedere Ripristinare un pool SQL dedicato esistente.

Operazioni preliminari

  1. Verificare la capacità in DTU. Ogni pool è ospitato da un server SQL logico (ad esempio, myserver.database.windows.net) con una quota DTU predefinita. Verificare che il server disponga di una quota DTU rimanente sufficiente per il database da ripristinare. Per informazioni su come calcolare la DTU necessaria o per richiedere altre DTU, vedere come richiedere una modifica della quota DTU.

  2. Assicurarsi di installare Azure PowerShell.

    Nota

    È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

  3. Disporre di un punto di ripristino esistente da cui si vuole eseguire il ripristino. Per creare un nuovo ripristino, vedere l'esercitazione per creare un nuovo punto di ripristino definito dall'utente.

Ripristinare un pool SQL dedicato esistente (in precedenza SQL Data Warehouse) tramite PowerShell

Per ripristinare un pool SQL dedicato (in precedenza SQL Data Warehouse) esistente da un punto di ripristino, usare il cmdlet Restore-AzSqlDatabase di PowerShell.

  1. Aprire PowerShell.

  2. Connettersi al proprio account Azure ed elencare tutte le sottoscrizioni associate all'account.

  3. Selezionare la sottoscrizione che contiene il database da ripristinare.

  4. Elencare i punti di ripristino per il pool SQL dedicato (in precedenza SQL Data Warehouse).

  5. Selezionare il punto di ripristino desiderato utilizzando RestorePointCreationDate.

  6. Ripristinare il pool SQL dedicato (in precedenza SQL Data Warehouse) al punto di ripristino desiderato usando il cmdlet Restore-AzSqlDatabase di PowerShell.

    1. Per ripristinare il pool SQL dedicato eliminato (in precedenza SQL Data Warehouse) in un server diverso, assicurarsi di specificare l'altro nome del server. Questo server può anche trovarsi in un gruppo di risorse e un'area diversi.
    2. Per eseguire il ripristino in una sottoscrizione diversa, vedere la sezione seguente.
  7. Verificare che il pool SQL dedicato ripristinato (in precedenza SQL Data Warehouse) sia online.

  8. Al termine del ripristino, è possibile configurare il pool SQL dedicato ripristinato (in precedenza SQL Data Warehouse) seguendo le istruzioni disponibili in Configurare il database dopo il ripristino.

    
    $SubscriptionName="<YourSubscriptionName>"
    $ResourceGroupName="<YourResourceGroupName>"
    $ServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.windows.net
    #$TargetResourceGroupName="<YourTargetResourceGroupName>" # uncomment to restore to a different server.
    #$TargetServerName="<YourtargetServerNameWithoutURLSuffixSeeNote>"  
    $DatabaseName="<YourDatabaseName>"
    $NewDatabaseName="<YourDatabaseName>"
    
    Connect-AzAccount
    Get-AzSubscription
    Select-AzSubscription -SubscriptionName $SubscriptionName
    
    # Or list all restore points
    Get-AzSqlDatabaseRestorePoint -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName
    
    # Get the specific database to restore
    $Database = Get-AzSqlDatabase -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName
    
    # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
    $PointInTime="<RestorePointCreationDate>"
    
    # Restore database from a restore point
    $RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $Database.ResourceGroupName -ServerName $Database.ServerName -TargetDatabaseName $NewDatabaseName –ResourceId $Database.ResourceID
    
    # Use the following command to restore to a different server
    #$TargetResourceGroupName = $Database.ResourceGroupName # for restoring to different server in same resourcegroup 
    #$RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $TargetResourceGroupName -ServerName $TargetServerName -TargetDatabaseName $NewDatabaseName –ResourceId $Database.ResourceID
    
    # Verify the status of restored database
    $RestoredDatabase.status
    

Ripristinare un pool SQL dedicato esistente (in precedenza SQL Data Warehouse) tramite il portale di Azure

  1. Accedere al portale di Azure.

  2. Passare al pool SQL dedicato da ripristinare e selezionarlo.

  3. Nella parte superiore della pagina Panoramica selezionare Ripristina.

    Screenshot della portale di Azure, la barra di spostamento della pagina Panoramica di un pool SQL, il pulsante Ripristina è evidenziato.

  4. Selezionare Punto di ripristino automatico o Punti di ripristino definiti dall'utente. Se per il pool SQL dedicato (in precedenza SQL Data Warehouse) non sono impostati punti di ripristino automatici, attendere qualche ora o creare un punto di ripristino definito dall'utente prima di eseguire il ripristino. Per Punti di ripristino definiti dall'utente, selezionare uno esistente o crearne uno nuovo. Per Server, è possibile selezionare un server in un gruppo di risorse e un'area diversi oppure crearne uno nuovo. Dopo aver specificato tutti i parametri, selezionare Rivedi e ripristina.

    Screenshot della pagina di ripristino del pool SQL dedicato del portale di Azure. Per Tipo di punto di ripristino, viene selezionato il pulsante di opzione per i punti di ripristino definiti dall'utente.

Ripristinare un pool SQL dedicato esistente (in precedenza, SQL DW) in una sottoscrizione diversa tramite PowerShell

Si tratta di indicazioni simili al ripristino di un pool SQL dedicato esistente, ma le istruzioni seguenti mostrano che il cmdlet Get-AzSqlDatabase di PowerShell deve essere eseguito nella sottoscrizione di origine mentre il cmdlet Restore-AzSqlDatabase di PowerShell deve essere eseguito nella sottoscrizione di destinazione. L'utente che esegue il ripristino deve disporre delle autorizzazioni appropriate nelle sottoscrizioni di origine e di destinazione.

  1. Aprire PowerShell.

  2. Aggiornare il modulo Az.Sql alla versione 3.8.0 (o successiva) se in una versione precedente usando Update-Module. In caso contrario, si verificheranno errori. Per convalidare la versione con 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. Connettersi al proprio account Azure ed elencare tutte le sottoscrizioni associate all'account.

  4. Selezionare la sottoscrizione che contiene il database da ripristinare.

  5. Elencare i punti di ripristino per il pool SQL dedicato (in precedenza SQL Data Warehouse).

  6. Selezionare il punto di ripristino desiderato utilizzando RestorePointCreationDate.

  7. Selezionare la sottoscrizione di destinazione in cui ripristinare il database.

  8. Ripristinare il pool SQL dedicato (in precedenza SQL Data Warehouse) al punto di ripristino desiderato usando il cmdlet Restore-AzSqlDatabase di PowerShell.

  9. Verificare che il pool SQL dedicato ripristinato (in precedenza SQL Data Warehouse) sia online.

    $SourceSubscriptionName="<YourSubscriptionName>"
    $SourceResourceGroupName="<YourResourceGroupName>"
    $SourceServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.windows.net
    $SourceDatabaseName="<YourDatabaseName>"
    $TargetSubscriptionName="<YourTargetSubscriptionName>"
    $TargetResourceGroupName="<YourTargetResourceGroupName>"
    $TargetServerName="<YourTargetServerNameWithoutURLSuffixSeeNote>"  # Without database.windows.net
    $TargetDatabaseName="<YourDatabaseName>"
    
    # 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
    
    # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
    $PointInTime="<RestorePointCreationDate>"
    # Or list all restore points
    Get-AzSqlDatabaseRestorePoint -ResourceGroupName $SourceResourceGroupName -ServerName $SourceServerName -DatabaseName $SourceDatabaseName
    
    # Get the specific database to restore
    $Database = Get-AzSqlDatabase -ResourceGroupName $SourceResourceGroupName -ServerName $SourceServerName -DatabaseName $SourceDatabaseName
    
    # 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 $Database.ResourceID
    
    # Verify the status of restored database
    $RestoredDatabase.status