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

Tip

Microsoft Fabric Data Warehouse geleceğe hazır mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip data lake foundation üzerinde kurumsal ölçekli ilişkisel bir ambardır. Veri ambarı konusunda yeniyseniz Fabric Data Warehouse ile başlayın. Mevcut özel SQL havuzu iş yükleri, veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltilebilir.

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ı, silinen çalışma alanını içeren aboneliğe ayarlayın.

  4. Çalışma alanının silindiği tarih saat değerini belirleyin. Bu adım, çalışma alanı SQL havuzunun kaldırı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çim Microsoft.Sql gerektirir. 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

Hata: "İstek işlenirken beklenmeyen bir hata oluştu."

Bu ileti alınırsa, özgün çalışma alanının kısa ömürlü 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.

Hata: "ValidationFailed: Sağlanan kaynak kimliği bu işlem için geçerli değil. Lütfen BIR SQL havuzu kaynağı kullanın"

Bu hatayı alırsanız şunları doğrulayın:

  1. Kaynak kimliği, bir Azure Synapse çalışma alanındaki ayrılmış SQL havuzunu ifade eder.
  2. Kaynak bir SQL havuzu veya kurtarılabilir SQL havuzudur.
  3. Kaynak kimliği doğrudur ve hedeflenen kaynak SQL havuzuna karşılık gelir.