Ayrılmış SQL havuzunu silinmiş bir çalışma alanından geri yükleme

Bu makalede, PowerShell kullanarak çalışma alanının yanlışlıkla bırakılmasının ardından Azure Synapse Analytics'te ayrılmış bir SQL havuzunu geri yüklemeyi öğreneceksiniz.

Not

Bu kılavuz, yalnızca Azure Synapse çalışma alanlarındaki ayrılmış SQL havuzlarına yöneliktir. Tek başına ayrılmış SQL havuzları (eski adıyla SQL DW) için, SQL havuzunu silinen sunucudan geri yükleme kılavuzunu takip edin.

Başlamadan önce

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Bırakılan çalışma alanından SQL havuzunu geri yükleme

Aşağıdaki örnek betik şu adımları gerçekleştirir:

  1. PowerShell’i açın

  2. Azure hesabınıza bağlanın.

  3. Bağlamı, bırakılan çalışma alanını içeren aboneliğe ayarlayın.

  4. Çalışma alanının bırakıldığı tarih saat değerini belirleyin. Bu adım, çalışma alanı SQL havuzunun bırakıldığı tam tarihi ve saati alır.

    • Bu adımda, aynı ad kaynak grubuna ve aynı değerlere sahip çalışma alanının hala kullanılabilir olduğu varsayılır.
    • Aksi takdirde, bırakılan çalışma alanını aynı çalışma alanı adı, kaynak grubu adı, bölge ve bırakılan önceki çalışma alanından alınan tüm aynı değerlerle yeniden oluşturun.
  5. Kurtarmak istediğiniz SQL havuzunun kaynak kimliğini bir dize oluşturun. Biçimi için Microsoft.Sqlgerekir. Bu, sunucunun bırakıldığı tarih ve saati içerir.

  6. Bırakılan çalışma alanından veritabanını geri yükleyin. Kaynak SQL havuzuyla hedef çalışma alanına geri yükleyin.

  7. Kurtarılan veritabanının durumunu 'çevrimiçi' olarak doğrulayın.

    $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
    

Sorun giderme

"İstek işlenirken beklenmeyen bir hata oluştu" iletisi alınırsa, özgün çalışma alanının kısa süreli olması nedeniyle özgün veritabanında kullanılabilir kurtarma noktası olmayabilir. Genellikle bu, çalışma alanının bir saatten kısa bir süre var olduğu durumdur.