Memulihkan kumpulan SQL khusus yang ada
Dalam artikel ini, Anda mempelajari cara memulihkan kumpulan SQL khusus yang ada di Azure Synapse Analytics menggunakan portal Microsoft Azure, Synapse Studio, dan PowerShell. Artikel ini berlaku untuk pemulihan dan pemulihan geografis.
Catatan
Panduan ini hanya untuk kumpulan SQL khusus di ruang kerja Azure Synapse. Untuk kumpulan SQL khusus mandiri (sebelumnya SQL DW), lihat Memulihkan kumpulan SQL khusus yang ada (sebelumnya SQL DW).
Memulihkan kumpulan SQL khusus yang ada melalui Synapse Studio
Masuk ke portal Azure.
Navigasikan ke ruang kerja Azure Synapse Anda.
Di bawah Memulai ->Buka Synapse Studio, pilih Buka.
Di panel navigasi sebelah kiri, pilih Data.
Pilih Kelola kumpulan.
Pilih + Baru untuk membuat kumpulan SQL khusus baru di ruang kerja Azure Synapse Analytics.
Di tab Pengaturan Tambahan, pilih Titik Pemulihan untuk memulihkannya.
Jika Anda ingin melakukan pemulihan geografis, pilih ruang kerja dan kumpulan SQL khusus yang ingin Anda pulihkan.
Pilih Titik Pemulihan Otomatis atau Titik Pemulihan yang Ditentukan Pengguna.
Jika kumpulan SQL khusus tidak memiliki titik pemulihan otomatis, tunggu beberapa jam atau buat titik pemulihan yang ditentukan pengguna sebelum memulihkan. Untuk Titik Pemulihan yang Ditentukan Pengguna, pilih titik pemulihan yang sudah ada atau buat titik pemulihan baru.
Jika Anda ingin memulihkan kumpulan SQL khusus dari ruang kerja yang berbeda, pilih Kumpulan SQL khusus baru dari ruang kerja Anda saat ini. Di bawah tab Pengaturan tambahan, temukan opsi Gunakan data yang sudah ada dan pilih titik Pemulihan. Seperti yang ditunjukkan pada cuplikan layar di atas, Anda kemudian dapat memilih nama Server atau ruang kerja tempat Anda dapat memulihkan.
Jika Anda memulihkan cadangan geografis, pilih ruang kerja yang terletak di wilayah sumber dan kumpulan SQL khusus yang ingin Anda pulihkan.
Catatan
Anda tidak dapat melakukan pemulihan kumpulan SQL di tempat dengan nama yang sama dengan kumpulan yang ada. Terlepas dari kumpulan SQL berada di ruang kerja yang sama atau ruang kerja yang berbeda.
Pilih Tinjau + Buat.
Memulihkan kumpulan SQL khusus yang ada melalui portal Azure
Masuk ke portal Azure.
Arahkan ke kumpulan SQL khusus yang ingin Anda pulihkan.
Di bagian atas halaman Ringkasan, pilih Pulihkan.
Pilih Titik Pemulihan Otomatis atau Titik Pemulihan yang Ditentukan Pengguna.
Jika kumpulan SQL khusus tidak memiliki titik pemulihan otomatis, tunggu beberapa jam atau buat titik pemulihan yang ditentukan pengguna sebelum memulihkan.
Jika Anda ingin melakukan pemulihan geografis, pilih ruang kerja dan kumpulan SQL khusus yang ingin Anda pulihkan.
Pilih Tinjau + Buat.
Memulihkan kumpulan SQL khusus yang ada melalui PowerShell
Buka Terminal PowerShell.
Sambungkan ke akun Azure Anda dan cantumkan semua langganan yang terkait dengan akun Anda.
Pilih langganan berisi kumpulan SQL yang akan dipulihkan.
Cantumkan titik pemulihan untuk kumpulan SQL khusus.
Pilih titik pemulihan yang diinginkan menggunakan RestorePointCreationDate.
Pulihkan kumpulan SQL khusus ke titik pemulihan yang diinginkan menggunakan cmdlet PowerShell Restore-AzSynapseSqlPool.
- Untuk memulihkan kumpulan SQL khusus ke ruang kerja yang berbeda, pastikan untuk menentukan nama ruang kerja lainnya. Ruang kerja ini juga dapat berada di grup sumber daya dan wilayah yang berbeda.
- Untuk memulihkan ke langganan lain, lihat Memulihkan kumpulan SQL khusus yang ada ke langganan lain melalui PowerShell di bagian berikutnya dari artikel ini.
Verifikasi bahwa kumpulan SQL khusus yang dipulihkan berstatus online.
$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
Memulihkan kumpulan SQL khusus yang ada ke langganan lain melalui PowerShell
Saat melakukan pemulihan lintas langganan, kumpulan SQL khusus di ruang kerja Azure Synapse hanya dapat memulihkan langsung ke kumpulan SQL khusus mandiri (sebelumnya SQL DW). Jika diperlukan untuk memulihkan kumpulan SQL khusus di ruang kerja Azure Synapse ke ruang kerja di langganan tujuan, perlu dilakukan langkah pemulihan tambahan.
Contoh PowerShell berikut mirip dengan sebelumnya, namun ada tiga perbedaan utama:
- Setelah mengambil objek Kumpulan SQL yang akan dipulihkan, konteks langganan perlu dialihkan ke nama langganan tujuan (atau target).
- Saat melakukan pemulihan, gunakan modul Az.Sql alih-alih modul Az.Synapse.
- Kode sampel di bawah ini memiliki langkah-langkah tambahan untuk memulihkan ke ruang kerja Azure Synapse di langganan tujuan. Hapus komentar perintah PowerShell seperti yang dijelaskan dalam sampel.
Langkah-langkah:
Buka Terminal PowerShell.
Perbarui Modul Az.Sql ke 3.8.0 (atau lebih tinggi) jika pada versi yang lebih lama menggunakan
Update-Module
. Jika tidak, itu akan menyebabkan kegagalan. Untuk memvalidasi versi Anda melalui PowerShell: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} }
Sambungkan ke akun Azure Anda dan cantumkan semua langganan yang terkait dengan akun Anda.
Pilih langganan berisi kumpulan SQL yang akan dipulihkan.
Cantumkan titik pemulihan untuk kumpulan SQL khusus.
Pilih titik pemulihan yang diinginkan menggunakan RestorePointCreationDate.
Pilih langganan tujuan tempat kumpulan SQL harus dipulihkan.
Pulihkan kumpulan SQL khusus ke titik pemulihan yang diinginkan menggunakan cmdlet PowerShell Restore-AzSqlDatabase.
Verifikasi bahwa kumpulan SQL khusus (sebelumnya SQL DW) yang dipulihkan berstatus online.
Jika tujuan yang diinginkan adalah Ruang Kerja Synapse, batalkan komentar kode untuk melakukan langkah pemulihan tambahan.
Buat titik pemulihan untuk gudang data yang baru dibuat.
Ambil titik pemulihan terakhir yang dibuat menggunakan sintaksis
Select -Last 1
.Lakukan pemulihan ke ruang kerja Azure Synapse yang diinginkan.
$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
Pecahkan masalah
Operasi pemulihan dapat mengakibatkan kegagalan penyebaran berdasarkan pengecualian "RequestTimeout".
Batas waktu ini dapat diabaikan. Tinjau halaman kumpulan SQL khusus di portal Azure dan mungkin masih memiliki status "Memulihkan" dan akhirnya akan beralih ke "Online".