Delen via


Een toegewezen SQL-pool herstellen vanuit een verwijderde werkruimte

In dit artikel leert u hoe u een toegewezen SQL-pool herstelt in Azure Synapse Analytics na een onbedoelde verwijdering van een werkruimte met behulp van PowerShell.

Notitie

Deze richtlijnen zijn alleen bedoeld voor toegewezen SQL-pools in Azure Synapse werkruimten. Voor zelfstandige toegewezen SQL-pools (voorheen SQL DW) volgt u de richtlijnen SQL-pool herstellen vanuit verwijderde server.

Voordat u begint

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

De SQL-pool herstellen vanuit de verwijderde werkruimte

Het volgende voorbeeldscript voert de volgende stappen uit:

  1. Open PowerShell

  2. Maak verbinding met uw Azure-account.

  3. Stel de context in op het abonnement dat de werkruimte bevat die is verwijderd.

  4. Bepaal de datum/tijd waarop de werkruimte is verwijderd. Met deze stap wordt de exacte datum en tijd opgehaald waarop de SQL-pool van de werkruimte is verwijderd.

    • In deze stap wordt ervan uitgegaan dat de werkruimte met dezelfde naamresourcegroep en dezelfde waarden nog steeds beschikbaar is.
    • Als dat niet het probleem is, maakt u de verwijderde werkruimte opnieuw met dezelfde werkruimtenaam, resourcegroepnaam, regio en dezelfde waarden uit de eerder verwijderde werkruimte.
  5. Maak een tekenreeks voor de resource-id van de SQL-pool die u wilt herstellen. Voor de indeling is vereist Microsoft.Sql. Dit omvat de datum en tijd waarop de server is verwijderd.

  6. Herstel de database vanuit de verwijderde werkruimte. Herstel naar de doelwerkruimte met de bron-SQL-pool.

  7. Controleer de status van de herstelde database als '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
    

Problemen oplossen

Als het bericht 'Er is een onverwachte fout opgetreden tijdens het verwerken van de aanvraag', is het mogelijk dat de oorspronkelijke database geen herstelpunten beschikbaar heeft omdat de oorspronkelijke werkruimte kort is. Dit is meestal wanneer de werkruimte minder dan één uur bestond.