Aracılığıyla paylaş


Mevcut ayrılmış SQL havuzunu geri yükleme

Bu makalede Azure portalı, Synapse Studio ve PowerShell'i kullanarak Azure Synapse Analytics'te mevcut bir ayrılmış SQL havuzunu geri yüklemeyi öğreneceksiniz. Bu makale hem geri yüklemeler hem de coğrafi geri yüklemeler için geçerlidir.

Note

Bu kılavuz, yalnızca Azure Synapse çalışma alanlarındaki ayrılmış SQL havuzlarına yöneliktir. Tek başına çalışan ayrılmış SQL havuzları (eski adı SQL DW) için bkz Mevcut bir ayrılmış SQL havuzunu (eski adı SQL DW) geri yükleme.

Mevcut ayrılmış SQL havuzunu Synapse Studio aracılığıyla geri yükleme

  1. Azure Portal’ında oturum açın.

  2. Azure Synapse çalışma alanınıza gidin.

  3. Başlarken altında ->Synapse Studio'yu açın ve Aç'ı seçin. Screenshot from Synapse Studio, showing the Open Synapse Studio box and Open link.

  4. Sol gezinti bölmesinde Veri'yi seçin.

  5. Havuzları yönet'i seçin.

  6. Azure Synapse Analytics çalışma alanında yeni bir ayrılmış SQL havuzu oluşturmak için + Yeni'yi seçin.

  7. Ek Ayarlar sekmesinde geri yükleneceği bir Geri Yükleme Noktası seçin.

    Coğrafi geri yükleme gerçekleştirmek istiyorsanız, kurtarmak istediğiniz çalışma alanını ve ayrılmış SQL havuzunu seçin.

  8. Otomatik Geri Yükleme Noktaları'nın veya Kullanıcı Tanımlı Geri Yükleme Noktalarının birini seçin.

    Azure portalı, SQL havuzu oluştur sayfası, Ek ayarlar sayfasının ekran görüntüsü. Geri yükleme noktası türü için Otomatik geri yükleme noktaları radyo düğmesi seçilir.

    • Ayrılmış SQL havuzunun herhangi bir otomatik geri yükleme noktası yoksa, birkaç saat bekleyin veya geri yüklemeden önce kullanıcı tanımlı bir geri yükleme noktası oluşturun. Kullanıcı Tanımlı Geri Yükleme Noktaları için mevcut bir geri yükleme noktası seçin veya yenisini oluşturun.

    • Ayrılmış bir SQL havuzunu farklı bir çalışma alanından geri yüklemek istiyorsanız geçerli çalışma alanınızdan Yeni ayrılmış SQL havuzu'yu seçin. Ek ayarlar sekmesinde Mevcut verileri kullan'ı bulun ve Geri yükleme noktası seçeneğini belirleyin. Yukarıdaki ekran görüntüsünde gösterildiği gibi, geri yükleyebileceğiniz Sunucu veya çalışma alanı adını seçebilirsiniz.

    • Coğrafi yedeklemeyi geri yüklüyorsanız, kaynak bölgede bulunan çalışma alanını ve geri yüklemek istediğiniz ayrılmış SQL havuzunu seçin.

    Note

    Mevcut bir havuzla aynı ismi taşıyan bir SQL havuzunu yerinde geri yükleme yapamazsınız. SQL havuzunun aynı çalışma alanında veya farklı bir çalışma alanında olmasına bakılmaksızın.

  9. Gözden geçir + Oluştur’u seçin.

Mevcut ayrılmış SQL havuzunu Azure portal aracılığıyla geri yükleme

  1. Azure Portal’ında oturum açın.

  2. Geri yüklemek istediğiniz ayrılmış SQL havuzuna gidin.

  3. Genel Bakış sayfasının en üstünde Geri yükle’yi seçin.

    SQL havuzuna genel bakış sayfasını gösteren Azure portalının ekran görüntüsü. Geri Yükle düğmesi vurgulanır.

  4. Otomatik Geri Yükleme Noktaları'nın veya Kullanıcı Tanımlı Geri Yükleme Noktalarının birini seçin.

    Ayrılmış SQL havuzunun herhangi bir otomatik geri yükleme noktası yoksa, geri yüklemeden önce birkaç saat bekleyin veya kullanıcı tanımlı bir geri yükleme noktası oluşturun.

    Coğrafi geri yükleme gerçekleştirmek istiyorsanız, kurtarmak istediğiniz çalışma alanını ve ayrılmış SQL havuzunu seçin.

  5. Gözden geçir + Oluştur’u seçin.

Mevcut ayrılmış SQL havuzunu PowerShell aracılığıyla geri yükleme

  1. Bir PowerShell terminali açın.

  2. Azure hesabınıza bağlanın ve hesabınızla ilişkili tüm abonelikleri listeleyin.

  3. Geri yüklenecek SQL havuzunu içeren aboneliği seçin.

  4. Ayrılmış SQL havuzu için geri yükleme noktalarını listeleyin.

  5. RestorePointCreationDate kullanarak istediğiniz geri yükleme noktasını seçin.

  6. Restore-AzSynapseSqlPool PowerShell cmdlet'ini kullanarak ayrılmış SQL havuzunu istediğiniz geri yükleme noktasına geri yükleyin.

  7. Geri yüklenen ayrılmış SQL havuzunun çevrimiçi olduğunu doğrulayın.

    
    $SubscriptionName="<YourSubscriptionName>"
    $ResourceGroupName="<YourResourceGroupName>"
    $WorkspaceName="<YourWorkspaceNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
    #$TargetResourceGroupName="<YourTargetResourceGroupName>" # uncomment to restore to a different workspace.
    #$TargetWorkspaceName="<YourtargetWorkspaceNameWithoutURLSuffixSeeNote>"  
    $SQLPoolName="<YourDatabaseName>"
    $NewSQLPoolName="<YourDatabaseName>"
    
    Connect-AzAccount
    Get-AzSubscription
    Select-AzSubscription -SubscriptionName $SubscriptionName
    
    # list all restore points
    Get-AzSynapseSqlPoolRestorePoint -ResourceGroupName $ResourceGroupName -WorkspaceName $WorkspaceName -Name $SQLPoolName
    # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
    $PointInTime="<RestorePointCreationDate>"
    
    # Get the specific SQL pool to restore
    $SQLPool = Get-AzSynapseSqlPool -ResourceGroupName $ResourceGroupName -WorkspaceName $WorkspaceName -Name $SQLPoolName
    # Transform Synapse SQL pool resource ID to SQL database ID because currently the restore command only accepts the SQL database ID format.
    $DatabaseID = $SQLPool.Id -replace "Microsoft.Synapse", "Microsoft.Sql" `
        -replace "workspaces", "servers" `
        -replace "sqlPools", "databases"
    
    # Restore database from a restore point
    $RestoredDatabase = Restore-AzSynapseSqlPool –FromRestorePoint -RestorePoint $PointInTime -ResourceGroupName $SQLPool.ResourceGroupName `
        -WorkspaceName $SQLPool.WorkspaceName -TargetSqlPoolName $NewSQLPoolName –ResourceId $DatabaseID -PerformanceLevel DW100c
    
    # Use the following command to restore to a different workspace
    #$TargetResourceGroupName = $SQLPool.ResourceGroupName # for restoring to different workspace in same resourcegroup 
    #$RestoredDatabase = Restore-AzSynapseSqlPool –FromRestorePoint -RestorePoint $PointInTime -ResourceGroupName $TargetResourceGroupName `
    #    -WorkspaceName $TargetWorkspaceName -TargetSqlPoolName $NewSQLPoolName –ResourceId $DatabaseID -PerformanceLevel DW100c
    
    # Verify the status of restored database
    $RestoredDatabase.status
    

PowerShell kullanarak ayrılmış SQL havuzunu farklı bir aboneliğe geri yükleme

Abonelikler arası geri yükleme gerçekleştirirken, Azure Synapse çalışma alanında ayrılmış bir SQL havuzu yalnızca doğrudan tek başına ayrılmış SQL havuzuna (eski adı SQL DW) geri yüklenebilir. Azure Synapse çalışma alanında ayrılmış bir SQL havuzunu hedef abonelikteki bir çalışma alanına geri yüklemek gerekiyorsa, ek bir geri yükleme adımı gerekir.

Aşağıdaki PowerShell örneği öncekine benzer, ancak üç ana fark vardır:

  • After retrieving the SQL Pool object to be restored, the subscription context needs to be switched to the destination (or target) subscription name.
  • Geri yüklemeyi gerçekleştirirken Az.Synapse modülleri yerine Az.Sql modüllerini kullanın.
  • Aşağıdaki örnek kod, hedef abonelikteki bir Azure Synapse çalışma alanına geri yüklemek için ek adımlar içerir. Uncomment the PowerShell commands as described in the sample.

Adımlar:

  1. Bir PowerShell terminali açın.

  2. kullanan eski bir sürümdeyse Az.Sql Modülünü 3.8.0 (veya üzeri) olarak Update-Modulegüncelleştirin. Aksi takdirde hatalara neden olur. PowerShell aracılığıyla sürümünüzü doğrulamak için:

    foreach ($i in (get-module -ListAvailable | ?{$_.name -eq 'az.sql'}).Version) { $version = [string]$i.Major + "." + [string]$i.Minor; if ($version -gt 3.7) {write-host "Az.Sql version $version installed. Prerequisite met."} else {update-module az.sql} }
    
  3. Azure hesabınıza bağlanın ve hesabınızla ilişkili tüm abonelikleri listeleyin.

  4. Geri yüklenecek SQL havuzunu içeren aboneliği seçin.

  5. Ayrılmış SQL havuzu için geri yükleme noktalarını listeleyin.

  6. RestorePointCreationDate kullanarak istediğiniz geri yükleme noktasını seçin.

  7. SQL havuzunun geri yüklenmesi gereken hedef aboneliği seçin.

  8. Restore-AzSqlDatabase PowerShell cmdlet'ini kullanarak ayrılmış SQL havuzunu istediğiniz geri yükleme noktasına geri yükleyin.

  9. Geri yüklenen ayrılmış SQL havuzunun (eski adı SQL DW) çevrimiçi olduğunu doğrulayın.

  10. If the desired destination is a Synapse Workspace, uncomment the code to perform the additional restore step.

    1. Yeni oluşturulan veri ambarı için geri yükleme noktası oluşturun.

    2. Select -Last 1 söz dizimini kullanarak oluşturulan son geri yükleme noktasını alın.

    3. İstediğiniz Azure Synapse çalışma alanına geri yüklemeyi gerçekleştirin.

      $SourceSubscriptionName="<YourSubscriptionName>"
      $SourceResourceGroupName="<YourResourceGroupName>"
      $SourceWorkspaceName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
      $SourceSQLPoolName="<YourDatabaseName>"
      $TargetSubscriptionName="<YourTargetSubscriptionName>"
      $TargetResourceGroupName="<YourTargetResourceGroupName>"
      $TargetServerName="<YourTargetServerNameWithoutURLSuffixSeeNote>"  # Without sql.azuresynapse.net
      $TargetDatabaseName="<YourDatabaseName>"
      #$TargetWorkspaceName="<YourTargetWorkspaceName>" # uncomment if restore to an Azure Synapse workspace is required
      
      # Update Az.Sql module to the latest version (3.8.0 or above)
      # Update-Module -Name Az.Sql -RequiredVersion 3.8.0
      
      Connect-AzAccount
      Get-AzSubscription
      Select-AzSubscription -SubscriptionName $SourceSubscriptionName
      
      # list all restore points
      Get-AzSynapseSqlPoolRestorePoint -ResourceGroupName $SourceResourceGroupName -WorkspaceName $SourceWorkspaceName -Name $SourceSQLPoolName
      # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
      $PointInTime="<RestorePointCreationDate>"
      
      # Get the specific SQL pool to restore
      $SQLPool = Get-AzSynapseSqlPool -ResourceGroupName $SourceResourceGroupName -WorkspaceName $SourceWorkspaceName -Name $SourceSQLPoolName
      # Transform Synapse SQL pool resource ID to SQL database ID because currently the restore command only accepts the SQL database ID format.
      $DatabaseID = $SQLPool.Id -replace "Microsoft.Synapse", "Microsoft.Sql" `
          -replace "workspaces", "servers" `
          -replace "sqlPools", "databases"
      
      # Switch context to the destination subscription
      Select-AzSubscription -SubscriptionName $TargetSubscriptionName
      
      # Restore database from a desired restore point of the source database to the target server in the desired subscription
      $RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $TargetResourceGroupName `
          -ServerName $TargetServerName -TargetDatabaseName $TargetDatabaseName –ResourceId $DatabaseID
      
      # Verify the status of restored database
      $RestoredDatabase.status
      
      # uncomment below cmdlets to perform one more restore to push the SQL Pool to an existing workspace in the destination subscription
      # # Create restore point
      # New-AzSqlDatabaseRestorePoint -ResourceGroupName $RestoredDatabase.ResourceGroupName -ServerName $RestoredDatabase.ServerName `
      #     -DatabaseName $RestoredDatabase.DatabaseName -RestorePointLabel "UD-001"
      # # Gets the last restore point of the sql dw (will use the RestorePointCreationDate property)
      # $RestorePoint = Get-AzSqlDatabaseRestorePoint -ResourceGroupName $RestoredDatabase.ResourceGroupName -ServerName $RestoredDatabase.ServerName `
      #     -DatabaseName $RestoredDatabase.DatabaseName | Select -Last 1
      # # Restore to destination synapse workspace
      # $FinalRestore = Restore-AzSynapseSqlPool –FromRestorePoint -RestorePoint $RestorePoint.RestorePointCreationDate -ResourceGroupName $TargetResourceGroupName `
      #     -WorkspaceName $TargetWorkspaceName -TargetSqlPoolName $TargetDatabaseName –ResourceId $RestoredDatabase.ResourceID -PerformanceLevel DW100c
      
      

Sorun giderme

Geri yükleme işlemi , "RequestTimeout" özel durumuna bağlı olarak dağıtım hatasına neden olabilir.

Kaynak grubu dağıtımları iletişim kutusunda oluşan bir zaman aşımı istisnasının ekran görüntüsü.

This timeout can be ignored. Review the dedicated SQL pool page in the Azure portal and it might still have status of "Restoring" and eventually will transition to "Online".

Geri yükleme durumunu gösteren SQL havuzu iletişim kutusunun ekran görüntüsü.