Przywracanie istniejącej dedykowanej puli SQL

Z tego artykułu dowiesz się, jak przywrócić istniejącą dedykowaną pulę SQL w usłudze Azure Synapse Analytics przy użyciu witryny Azure Portal, programu Synapse Studio i programu PowerShell. Ten artykuł dotyczy przywracania i przywracania geograficznego.

Uwaga

Te wskazówki dotyczą tylko dedykowanych pul SQL w obszarach roboczych usługi Azure Synapse. W przypadku autonomicznych dedykowanych pul SQL (dawniej SQL DW) zobacz Przywracanie istniejącej dedykowanej puli SQL (dawniej SQL DW).

Przywracanie istniejącej dedykowanej puli SQL za pośrednictwem programu Synapse Studio

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do obszaru roboczego usługi Azure Synapse.

  3. W obszarze Wprowadzenie — Otwórz program> Synapse Studio wybierz pozycję Otwórz. Screenshot from Synapse Studio, showing the Open Synapse Studio box and Open link.

  4. W okienku nawigacji po lewej stronie wybierz pozycję Dane.

  5. Wybierz pozycję Zarządzaj pulami.

  6. Wybierz pozycję + Nowy , aby utworzyć nową dedykowaną pulę SQL w obszarze roboczym usługi Azure Synapse Analytics.

  7. Na karcie Dodatkowe Ustawienia wybierz punkt przywracania do przywrócenia.

    Jeśli chcesz wykonać przywracanie geograficzne, wybierz obszar roboczy i dedykowaną pulę SQL, którą chcesz odzyskać.

  8. Wybierz pozycję Automatyczne punkty przywracania lub Punkty przywracania zdefiniowane przez użytkownika.

    Screenshot from the Azure portal, Create SQL pool page, Additional settings page. For Restore point type, the Automatic restore points radio button is selected.

    • Jeśli dedykowana pula SQL nie ma żadnych automatycznych punktów przywracania, zaczekaj kilka godzin lub utwórz punkt przywracania zdefiniowany przez użytkownika przed przywróceniem. W obszarze Punkty przywracania zdefiniowane przez użytkownika wybierz istniejący lub utwórz nowy.

    • Jeśli chcesz przywrócić dedykowaną pulę SQL z innego obszaru roboczego, wybierz pozycję Nowa dedykowana pula SQL z bieżącego obszaru roboczego. Na karcie Dodatkowe ustawienia znajdź opcję Użyj istniejących danych i wybierz opcję Punkt przywracania. Jak pokazano na powyższym zrzucie ekranu, możesz wybrać nazwę serwera lub obszaru roboczego , z którego można przywrócić.

    • Jeśli przywracasz geograficzną kopię zapasową, wybierz obszar roboczy znajdujący się w regionie źródłowym i dedykowaną pulę SQL, którą chcesz przywrócić.

    Uwaga

    Nie można wykonać przywracania w miejscu puli SQL o takiej samej nazwie jak istniejąca pula. Niezależnie od puli SQL, która jest w tym samym obszarze roboczym lub innym obszarze roboczym.

  9. Wybierz pozycję Przejrzyj i utwórz.

Przywracanie istniejącej dedykowanej puli SQL za pośrednictwem witryny Azure Portal

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do dedykowanej puli SQL, z której chcesz przywrócić.

  3. W górnej części strony Przegląd wybierz pozycję Przywróć.

    Screenshot from the Azure portal, showing the SQL pool overview page. The Restore button is highlighted.

  4. Wybierz pozycję Automatyczne punkty przywracania lub Punkty przywracania zdefiniowane przez użytkownika.

    Jeśli dedykowana pula SQL nie ma żadnych automatycznych punktów przywracania, zaczekaj kilka godzin lub utwórz punkt przywracania zdefiniowany przez użytkownika przed przywróceniem.

    Jeśli chcesz wykonać przywracanie geograficzne, wybierz obszar roboczy i dedykowaną pulę SQL, którą chcesz odzyskać.

  5. Wybierz pozycję Przejrzyj i utwórz.

Przywracanie istniejącej dedykowanej puli SQL za pośrednictwem programu PowerShell

  1. Otwórz terminal programu PowerShell.

  2. Połączenie do konta platformy Azure i wyświetl listę wszystkich subskrypcji skojarzonych z twoim kontem.

  3. Wybierz subskrypcję zawierającą pulę SQL, która ma zostać przywrócona.

  4. Wyświetl listę punktów przywracania dla dedykowanej puli SQL.

  5. Wybierz żądany punkt przywracania przy użyciu polecenia RestorePointCreationDate.

  6. Przywróć dedykowaną pulę SQL do żądanego punktu przywracania przy użyciu polecenia cmdlet Restore-AzSynapseSqlPool programu PowerShell.

  7. Sprawdź, czy przywrócona dedykowana pula SQL jest w trybie 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
    

Przywracanie istniejącej dedykowanej puli SQL do innej subskrypcji za pomocą programu PowerShell

Podczas przywracania między subskrypcjami dedykowana pula SQL w obszarze roboczym usługi Azure Synapse może przywracać tylko bezpośrednio do autonomicznej dedykowanej puli SQL (dawniej SQL DW). Jeśli wymagane jest przywrócenie dedykowanej puli SQL w obszarze roboczym usługi Azure Synapse do obszaru roboczego w subskrypcji docelowej, wymagany jest dodatkowy krok przywracania.

Poniższy przykład programu PowerShell jest podobny do poprzedniego, jednak istnieją trzy główne różnice:

  • Po pobraniu obiektu puli SQL, który ma zostać przywrócony, kontekst subskrypcji musi zostać przełączony na docelową (lub docelową) nazwę subskrypcji.
  • Podczas przywracania użyj modułów Az.Sql zamiast modułów Az.Synapse.
  • Poniższy przykładowy kod zawiera dodatkowe kroki przywracania do obszaru roboczego usługi Azure Synapse w subskrypcji docelowej. Usuń komentarz z poleceń programu PowerShell zgodnie z opisem w przykładzie.

Kroki:

  1. Otwórz terminal programu PowerShell.

  2. Zaktualizuj moduł Az.Sql do wersji 3.8.0 (lub nowszej), jeśli używasz starszej wersji przy użyciu polecenia Update-Module. W przeciwnym razie spowoduje to błędy. Aby zweryfikować wersję za pomocą programu 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. Połączenie do konta platformy Azure i wyświetl listę wszystkich subskrypcji skojarzonych z twoim kontem.

  4. Wybierz subskrypcję zawierającą pulę SQL, która ma zostać przywrócona.

  5. Wyświetl listę punktów przywracania dla dedykowanej puli SQL.

  6. Wybierz żądany punkt przywracania przy użyciu polecenia RestorePointCreationDate.

  7. Wybierz subskrypcję docelową, w której ma zostać przywrócona pula SQL.

  8. Przywróć dedykowaną pulę SQL do żądanego punktu przywracania przy użyciu polecenia cmdlet Restore-AzSqlDatabase programu PowerShell.

  9. Sprawdź, czy przywrócona dedykowana pula SQL (dawniej SQL DW) jest w trybie online.

  10. Jeśli żądanym miejscem docelowym jest obszar roboczy usługi Synapse, usuń komentarz z kodu, aby wykonać dodatkowy krok przywracania.

    1. Utwórz punkt przywracania dla nowo utworzonego magazynu danych.

    2. Pobierz ostatni punkt przywracania utworzony przy użyciu Select -Last 1 składni .

    3. Wykonaj przywracanie do żądanego obszaru roboczego usługi 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
      
      

Rozwiązywanie problemów

Operacja przywracania może spowodować niepowodzenie wdrożenia na podstawie wyjątku "RequestTimeout".

Screenshot from resource group deployments dialog of a timeout exception.

Ten limit czasu można zignorować. Przejrzyj dedykowaną stronę puli SQL w witrynie Azure Portal i nadal może mieć stan "Przywracanie", a ostatecznie przejdzie do pozycji "Online".

Screenshot of SQL pool dialog with the status that shows restoring.