Dela via


Återställa en befintlig dedikerad SQL-pool

I den här artikeln får du lära dig hur du återställer en befintlig dedikerad SQL-pool i Azure Synapse Analytics med hjälp av Azure Portal, Synapse Studio och PowerShell. Den här artikeln gäller både återställningar och geo-återställningar.

Kommentar

Den här vägledningen gäller endast för dedikerade SQL-pooler i Azure Synapse arbetsytor. För fristående dedikerade SQL-pooler (tidigare SQL DW), se Återställa en befintlig dedikerad SQL-pool (tidigare SQL DW).

Återställa en befintlig dedikerad SQL-pool via Synapse Studio

  1. Logga in på Azure-portalen.

  2. Gå till din Azure Synapse-arbetsyta.

  3. Under Komma igång ->Open Synapse Studio väljer du Öppna. Skärmbild från Synapse Studio som visar länken Öppna Synapse Studio och Öppna.

  4. I det vänstra navigeringsfönstret väljer du Data.

  5. Välj Hantera pooler.

  6. Välj + Ny för att skapa en ny dedikerad SQL-pool på Azure Synapse Analytics-arbetsytan.

  7. På fliken Ytterligare inställningar väljer du en återställningspunkt att återställa från.

    Om du vill utföra en geo-återställning väljer du den arbetsyta och dedikerade SQL-pool som du vill återställa.

  8. Välj antingen Automatiska återställningspunkter eller Användardefinierade återställningspunkter.

    Skärmbild från sidan Azure Portal, Skapa SQL-pool, sidan Ytterligare inställningar. För Typ av återställningspunkt väljs alternativknappen Automatiska återställningspunkter.

    • Om den dedikerade SQL-poolen inte har några automatiska återställningspunkter väntar du några timmar eller skapar en användardefinierad återställningspunkt innan du återställer den. För Användardefinierade återställningspunkter väljer du en befintlig eller skapar en ny.

    • Om du vill återställa en dedikerad SQL-pool från en annan arbetsyta väljer du Ny dedikerad SQL-pool från den aktuella arbetsytan. Under fliken Ytterligare inställningar letar du upp alternativet Använd befintliga data och väljer alternativet Återställningspunkt . Som du ser i skärmbilden ovan kan du sedan välja det server- eller arbetsytenamn som du kan återställa från.

    • Om du återställer en geo-säkerhetskopia väljer du den arbetsyta som finns i källregionen och den dedikerade SQL-pool som du vill återställa.

    Kommentar

    Du kan inte utföra en återställning på plats av en SQL-pool med samma namn som en befintlig pool. Oavsett om SQL-poolen finns på samma arbetsyta eller en annan arbetsyta.

  9. Välj Granska + skapa.

Återställa en befintlig dedikerad SQL-pool via Azure-portalen

  1. Logga in på Azure-portalen.

  2. Gå till den dedikerade SQL-pool som du vill återställa från.

  3. Högst upp på sidan Översikt väljer du Återställ.

    Skärmbild från Azure Portal som visar översiktssidan för SQL-poolen. Knappen Återställ är markerad.

  4. Välj antingen Automatiska återställningspunkter eller Användardefinierade återställningspunkter.

    Om den dedikerade SQL-poolen inte har några automatiska återställningspunkter väntar du några timmar eller skapar en användardefinierad återställningspunkt innan du återställer den.

    Om du vill utföra en geo-återställning väljer du den arbetsyta och dedikerade SQL-pool som du vill återställa.

  5. Välj Granska + skapa.

Återställa en befintlig dedikerad SQL-pool via PowerShell

  1. Öppna en PowerShell-terminal.

  2. Anslut till ditt Azure-konto och visa en lista över alla prenumerationer som är associerade med ditt konto.

  3. Välj den prenumeration som innehåller DEN SQL-pool som ska återställas.

  4. Visa en lista över återställningspunkterna för den dedikerade SQL-poolen.

  5. Välj önskad återställningspunkt med hjälp av RestorePointCreationDate.

  6. Återställ den dedikerade SQL-poolen till önskad återställningspunkt med hjälp av PowerShell-cmdleten Restore-AzSynapseSqlPool .

  7. Kontrollera att den återställde dedikerade SQL-poolen är 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
    

Återställa en befintlig dedikerad SQL-pool till en annan prenumeration via PowerShell

När du utför en återställning mellan prenumerationer kan en dedikerad SQL-pool på en Azure Synapse-arbetsyta bara återställa direkt till en fristående dedikerad SQL-pool (tidigare SQL DW). Om det krävs för att återställa en dedikerad SQL-pool i en Azure Synapse-arbetsyta till en arbetsyta i målprenumerationen krävs ytterligare ett återställningssteg.

Följande PowerShell-exempel liknar det tidigare, men det finns tre huvudsakliga skillnader:

  • När du har hämtat SQL-poolobjektet som ska återställas måste prenumerationskontexten växlas till målprenumerationsnamnet (eller målprenumerationen).
  • När du utför återställningen använder du Az.Sql-modulerna i stället för Az.Synapse-modulerna.
  • Exempelkoden nedan innehåller ytterligare steg för att återställa till en Azure Synapse-arbetsyta i målprenumerationen. Avkommentera PowerShell-kommandona enligt beskrivningen i exemplet.

Steg:

  1. Öppna en PowerShell-terminal.

  2. Uppdatera Az.Sql-modulen till 3.8.0 (eller senare) om du använder en äldre version med .Update-Module Annars kommer det att orsaka fel. Så här verifierar du din version via 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. Anslut till ditt Azure-konto och visa en lista över alla prenumerationer som är associerade med ditt konto.

  4. Välj den prenumeration som innehåller DEN SQL-pool som ska återställas.

  5. Visa en lista över återställningspunkterna för den dedikerade SQL-poolen.

  6. Välj önskad återställningspunkt med hjälp av RestorePointCreationDate.

  7. Välj den målprenumeration där SQL-poolen ska återställas.

  8. Återställ den dedikerade SQL-poolen till önskad återställningspunkt med hjälp av PowerShell-cmdleten Restore-AzSqlDatabase .

  9. Kontrollera att den återställde dedikerade SQL-poolen (tidigare SQL DW) är online.

  10. Om det önskade målet är en Synapse-arbetsyta avkommenterar du koden för att utföra det ytterligare återställningssteget.

    1. Skapa en återställningspunkt för det nyligen skapade informationslagret.

    2. Hämta den senaste återställningspunkten som skapades med hjälp av syntaxen Select -Last 1 .

    3. Utför återställningen till önskad Azure Synapse-arbetsyta.

      $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
      
      

Felsöka

En återställningsåtgärd kan resultera i ett distributionsfel baserat på ett "RequestTimeout"-undantag.

Skärmbild från dialogrutan för distribution av resursgrupper med ett timeout-undantag.

Den här tidsgränsen kan ignoreras. Granska den dedikerade SQL-poolsidan i Azure Portal och den kan fortfarande ha statusen "Återställa" och så småningom övergå till "Online".

Skärmbild av dialogrutan för SQL-pool med statusen som visar återställning.