Wiederherstellen eines dedizierten SQL-Pools aus einem gelöschten Arbeitsbereich

In diesem Artikel erfahren Sie, wie Sie einen dedizierten SQL-Pool in Azure Synapse Analytics mit PowerShell wiederherstellen können, nachdem ein Arbeitsbereich versehentlich gelöscht wurde.

Hinweis

Diese Anleitung gilt nur für dedizierte SQL-Pools in Azure Synapse Arbeitsbereichen. Für eigenständige dedizierte SQL-Pools (früher SQL DW) folgen Sie der Anleitung zum Wiederherstellen eines SQL-Pools vom gelöschten Server.

Voraussetzungen

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Wiederherstellen des SQL-Pools aus dem gelöschten Arbeitsbereich

Das folgende Beispielskript führt diese Schritte aus:

  1. Öffnen Sie PowerShell.

  2. Stellen Sie eine Verbindung mit Ihrem Azure-Konto her.

  3. Legen Sie den Kontext auf das Abonnement fest, das den gelöschten Arbeitsbereich enthält.

  4. Legen Sie fest, wann der Arbeitsbereich verworfen wurde. In diesem Schritt wird das genaue Datum und die Uhrzeit abgerufen, an dem und zu der der SQL-Pool des Arbeitsbereichs gelöscht wurde.

    • In diesem Schritt wird davon ausgegangen, dass der Arbeitsbereich mit derselben Namensressourcengruppe und denselben Werten weiterhin verfügbar ist.
    • Falls nicht, erstellen Sie den verworfenen Arbeitsbereich mit demselben Arbeitsbereichsnamen, Ressourcengruppennamen, derselben Region und allen Werten aus dem vorherigen gelöschten Arbeitsbereich neu.
  5. Erstellen Sie eine Zeichenfolge mit der Ressourcen-ID des SQL-Pools, den Sie wiederherstellen möchten. Das Format erfordert Microsoft.Sql. Dies umfasst den Zeitpunkt (Datum und Uhrzeit), an dem der Server verworfen wurde.

  6. Stelle Sie die Datenbank aus dem gelöschten Arbeitsbereich wieder her. Stellen Sie den Zielarbeitsbereich mit dem SQL-Quellpool wieder her.

  7. Vergewissern Sie sich, dass der Status der wiederhergestellten Datenbank „online“ ist.

    $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
    

Problembehandlung

Wenn die Meldung „Unerwarteter Fehler beim Verarbeiten der Anforderung“ angezeigt wird, sind in der ursprünglichen Datenbank möglicherweise aufgrund der kurzen Lebensdauer des ursprünglichen Arbeitsbereichs keine Wiederherstellungspunkte verfügbar. In der Regel ist dies der Fall, wenn der Arbeitsbereich weniger als eine Stunde lang bestand.