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.
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ı 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
Azure Portal’ında oturum açın.
Azure Synapse çalışma alanınıza gidin.
Başlarken ->Synapse Studio'yu açın altında Aç'ı seçin.
Sol gezinti bölmesinde Veri'yi seçin.
Havuzları yönet'i seçin.
Azure Synapse Analytics çalışma alanında yeni bir ayrılmış SQL havuzu oluşturmak için + Yeni'yi seçin.
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.
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, 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.
Not
Var olan bir havuzla aynı ada sahip bir SQL havuzunun yerinde geri yüklemesini gerçekleştiremezsiniz. SQL havuzunun aynı çalışma alanında veya farklı bir çalışma alanında olmasına bakılmaksızın.
Gözden geçir + Oluştur’u seçin.
Mevcut ayrılmış SQL havuzunu Azure portal aracılığıyla geri yükleme
Azure Portal’ında oturum açın.
Geri yüklemek istediğiniz ayrılmış SQL havuzuna gidin.
Genel Bakış sayfasının en üstünde Geri yükle’yi seçin.
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.
Gözden geçir + Oluştur’u seçin.
Mevcut ayrılmış SQL havuzunu PowerShell aracılığıyla geri yükleme
Bir PowerShell terminali açın.
Azure hesabınıza bağlanın ve hesabınızla ilişkili tüm abonelikleri listeleyin.
Geri yüklenecek SQL havuzunu içeren aboneliği seçin.
Ayrılmış SQL havuzu için geri yükleme noktalarını listeleyin.
RestorePointCreationDate kullanarak istediğiniz geri yükleme noktasını seçin.
Restore-AzSynapseSqlPool PowerShell cmdlet'ini kullanarak ayrılmış SQL havuzunu istediğiniz geri yükleme noktasına geri yükleyin.
- Ayrılmış SQL havuzunu farklı bir çalışma alanına geri yüklemek için diğer çalışma alanı adını belirttiğinizden emin olun. Bu çalışma alanı farklı bir kaynak grubunda ve bölgede de olabilir.
- Farklı bir aboneliğe geri yüklemek için bu makalenin devamında PowerShell aracılığıyla var olan bir ayrılmış SQL havuzunu farklı bir aboneliğe geri yükleme bölümüne bakın.
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:
- Geri yüklenecek SQL Havuzu nesnesi alındıktan sonra abonelik bağlamı hedef (veya hedef) abonelik adına geçirilmelidir.
- 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. Örnekte açıklandığı gibi PowerShell komutlarının açıklamasını kaldırın.
Adımlar:
Bir PowerShell terminali açın.
kullanan eski bir sürümdeyse Az.Sql Modülünü 3.8.0 (veya üzeri) olarak
Update-Module
gü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. Prequisite met."} else {update-module az.sql} }
Azure hesabınıza bağlanın ve hesabınızla ilişkili tüm abonelikleri listeleyin.
Geri yüklenecek SQL havuzunu içeren aboneliği seçin.
Ayrılmış SQL havuzu için geri yükleme noktalarını listeleyin.
RestorePointCreationDate kullanarak istediğiniz geri yükleme noktasını seçin.
SQL havuzunun geri yüklenmesi gereken hedef aboneliği seçin.
Restore-AzSqlDatabase PowerShell cmdlet'ini kullanarak ayrılmış SQL havuzunu istediğiniz geri yükleme noktasına geri yükleyin.
Geri yüklenen ayrılmış SQL havuzunun (eski adı SQL DW) çevrimiçi olduğunu doğrulayın.
İstenen hedef bir Synapse Çalışma Alanı ise, ek geri yükleme adımını gerçekleştirmek için kodun açıklamasını kaldırın.
Yeni oluşturulan veri ambarı için geri yükleme noktası oluşturun.
Söz dizimini kullanarak
Select -Last 1
oluşturulan son geri yükleme noktasını alın.İ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.
Bu zaman aşımı yoksayılabilir. Azure portalında ayrılmış SQL havuzu sayfasını gözden geçirin; "Geri Yükleme" durumunda olabilir ve sonunda "Çevrimiçi" durumuna geçer.