Przywracanie dedykowanej puli SQL z usuniętego obszaru roboczego

Tip

Microsoft Fabric Data Warehouse to magazyn relacyjny w skali przedsiębiorstwa na podstawie bazy danych data lake z architekturą gotową do użycia w przyszłości, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz korzystać z magazynowania danych, zacznij od Fabric Data Warehouse. Istniejące obciążenia dedykowanej puli SQL mogą zostać zaktualizowane do Fabric, aby uzyskać dostęp do nowych możliwości w zakresie nauki o danych, analizy w czasie rzeczywistym i raportowania.

Z tego artykułu dowiesz się, jak przywrócić dedykowaną pulę SQL w Azure Synapse Analytics po przypadkowym usunięciu obszaru roboczego przy użyciu programu PowerShell.

Uwaga

Te wskazówki dotyczą tylko dedykowanych pul SQL w obszarach roboczych Azure Synapse. W przypadku autonomicznych dedykowanych pul SQL (dawniej SQL DW) postępuj zgodnie ze wskazówkami Przywracanie puli SQL z usuniętego serwera.

Zanim rozpoczniesz

Uwaga

Zalecamy użycie modułu Azure Az PowerShell do interakcji z Azure. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Przywracanie puli SQL z usuniętego obszaru roboczego

Poniższy przykładowy skrypt wykonuje następujące kroki:

  1. Otwieranie programu PowerShell

  2. Połącz się z kontem platformy Azure.

  3. Ustaw kontekst na subskrypcję zawierającą obszar roboczy, który został porzucony.

  4. Określ datę/godzinę porzuconego obszaru roboczego. Ten krok pobiera dokładną datę i godzinę usunięcia puli SQL obszaru roboczego.

    • W tym kroku przyjęto założenie, że obszar roboczy z tą samą nazwą, ta sama grupa zasobów i te same wartości są nadal dostępne.
    • Jeśli nie, utwórz ponownie porzucony obszar roboczy o tej samej nazwie obszaru roboczego, nazwie grupy zasobów, regionie i wszystkich tych samych wartości z wcześniejszego porzuconego obszaru roboczego.
  5. Skonstruuj ciąg z identyfikatorem zasobu dla puli SQL, którą chcesz odzyskać. Format wymaga Microsoft.Sql. Obejmuje to datę i godzinę porzucenia serwera.

  6. Przywróć bazę danych z usuniętego obszaru roboczego. Przywróć do docelowego obszaru roboczego, używając źródłowej puli SQL.

  7. Sprawdź stan odzyskanej bazy danych jako "online".

    $SubscriptionID = "<YourSubscriptionID>"
    $ResourceGroupName = "<YourResourceGroupName>"
    $WorkspaceName = "<YourWorkspaceNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
    $DatabaseName = "<YourDatabaseName>"
    $TargetResourceGroupName = "<YourTargetResourceGroupName>"
    $TargetWorkspaceName = "<YourtargetServerNameWithoutURLSuffixSeeNote>"
    $TargetDatabaseName = "<YourDatabaseName>"
    
    Connect-AzAccount
    Set-AzContext -SubscriptionID $SubscriptionID
    
    # Get the exact date and time the workspace SQL pool was dropped.
    # This assumes that the workspace with the same name resource group and same values is still available.
    # If not, recreate the dropped workspace with the same workspace name, resource group name, region, 
    # and all the same values from prior dropped workspace.
    # There should only be one selection to select from.
    $paramsGetDroppedSqlPool = @{
        ResourceGroupName = $ResourceGroupName
        WorkspaceName     = $WorkspaceName
        Name              = $DatabaseName
    }
    $DroppedDateTime = Get-AzSynapseDroppedSqlPool @paramsGetDroppedSqlPool `
        | Select-Object -ExpandProperty DeletionDate
    
    # Construct a string of the resource ID of the sql pool you wish to recover.
    # The format requires Microsoft.Sql. This includes the approximate date time the server was dropped.
    $SourceDatabaseID = "/subscriptions/$SubscriptionID/resourceGroups/$ResourceGroupName/providers/" `
                    + "Microsoft.Sql/servers/$WorkspaceName/databases/$DatabaseName"    
    
    # Restore to the target workspace with the source SQL pool.
    $paramsRestoreSqlPool = @{
        FromDroppedSqlPool  = $true
        DeletionDate        = $DroppedDateTime
        TargetSqlPoolName   = $TargetDatabaseName
        ResourceGroupName   = $TargetResourceGroupName
        WorkspaceName       = $TargetWorkspaceName
        ResourceId          = $SourceDatabaseID
    }
    $RestoredDatabase = Restore-AzSynapseSqlPool @paramsRestoreSqlPool
    
    # Verify the status of restored database
    $RestoredDatabase.status
    

Rozwiązywanie problemów

Błąd: "Wystąpił nieoczekiwany błąd podczas przetwarzania żądania".

Jeśli ten komunikat zostanie odebrany, oryginalna baza danych może nie mieć żadnych punktów odzyskiwania, ponieważ oryginalny obszar roboczy jest krótkotrwały. Zazwyczaj jest to sytuacja, w której obszar roboczy istniał przez mniej niż jedną godzinę.

Błąd: "ValidationFailed: podany identyfikator zasobu jest nieprawidłowy dla tej operacji. Użyj zasobu puli SQL"

Jeśli otrzymasz ten błąd, sprawdź, czy element sourceDatabaseId używa obsługiwanego formatu identyfikatora zasobu i wskazuje zamierzoną źródłową dedykowaną pulę SQL.

Obsługiwane formaty

Synapse SQL pool resource ID /subscriptions/{subscriptionId}/resourceGroups/{workspaceResourceGroup}/providers/Microsoft. Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}

Identyfikator zasobu zarządzanej bazy danych SQL /subscriptions/{subscriptionId}/resourceGroups/{managedResourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}