Przywracanie dedykowanej puli SQL z usuniętego obszaru roboczego

Z tego artykułu dowiesz się, jak przywrócić dedykowaną pulę SQL w usłudze 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 usługi Azure Synapse. W przypadku autonomicznych dedykowanych pul SQL (zwanych wcześniej SQL DW) postępuj zgodnie ze wskazówkami Przywracanie puli SQL z usuniętego serwera.

Zanim rozpoczniesz

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. 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. Otwórz program 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ę porzucenia puli SQL obszaru roboczego.

    • W tym kroku przyjęto założenie, że obszar roboczy o tej samej nazwie grupy 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 identyfikator zasobu 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óć docelowy obszar roboczy za pomocą ź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

Jeśli podczas przetwarzania żądania zostanie wyświetlony komunikat "Wystąpił nieoczekiwany błąd", oryginalna baza danych może nie mieć żadnych dostępnych punktów odzyskiwania z powodu krótkiego życia oryginalnego obszaru roboczego. Zazwyczaj jest to sytuacja, w której obszar roboczy istniał przez mniej niż jedną godzinę.