استعادة تجمع SQL مخصص موجود

في هذه المقالة، ستتعرف على كيفية استعادة تجمع SQL مخصص موجود في Azure Synapse Analytics باستخدام مدخل Azure وSynapse Studio وPowerShell. تنطبق هذه المقالة على كل من عمليات الاستعادة والاستعادة الجغرافية.

استعادة تجمع SQL مخصص موجود من خلال Synapse Studio

  1. تسجيل الدخول إلى ⁧⁩مدخل Azure⁧⁩.

  2. انتقل إلى مساحة عمل Synapse.

  3. ضمن الشروع في العمل -> افتح Synapse Studio، حدد فتح.

     Synapse Studio

  4. في جزء التنقل الأيمن، حدد بيانات.

  5. حدد إدارة التجمعات.

  6. حدد + جديد لإنشاء تجمع SQL مخصص جديد.

  7. في علامة التبويب الإعدادات إضافية، حدد نقطة استعادة للاستعادة منها.

    إذا كنت ترغب في إجراء استعادة جغرافية، فحدد مساحة العمل وتجمع SQL المخصص الذي تريد استرداده.

  8. حدد إما نقاط الاستعادة التلقائية أو نقاط الاستعادة المعرفة من قبل المستخدم.

    Restore points

    إذا لم يكن تجمع SQL المخصص يحتوي على أي نقاط استعادة تلقائية، فانتظر بضع ساعات أو أنشئ نقطة استعادة محددة من قبل المستخدم قبل الاستعادة. بالنسبة User-Defined استعادة النقاط، حدد نقطة موجودة أو أنشئ نقطة جديدة.

    إذا كنت تقوم باستعادة نسخة احتياطية جغرافية، فما عليك سوى تحديد مساحة العمل الموجودة في منطقة المصدر وتجمع SQL المخصص الذي تريد استعادته.

  9. حدد "Review + Create".

استعادة تجمع SQL مخصص موجود من خلال مدخل Azure

  1. تسجيل الدخول إلى ⁧⁩مدخل Azure⁧⁩.

  2. انتقل إلى تجمع SQL المخصص الذي تريد الاستعادة منه.

  3. في أعلى شفرة نظرة عامة، حدد استعادة.

     Restore Overview

  4. حدد إما نقاط الاستعادة التلقائية أو نقاط الاستعادة المعرفة من قبل المستخدم.

    إذا لم يكن تجمع SQL المخصص يحتوي على أي نقاط استعادة تلقائية، فانتظر بضع ساعات أو أنشئ نقطة استعادة محددة من قبل المستخدم قبل الاستعادة.

    إذا كنت ترغب في إجراء استعادة جغرافية، فحدد مساحة العمل وتجمع SQL المخصص الذي تريد استرداده.

  5. حدد "Review + Create".

استعادة مجموعة SQL مخصصة موجودة من خلال PowerShell

  1. افتح PowerShell.

  2. الاتصال إلى حساب Azure الخاص بك وسرد جميع الاشتراكات المرتبطة بحسابك.

  3. حدد الاشتراك الذي يحتوي على تجمع SQL المراد استعادته.

  4. أدرج نقاط الاستعادة لتجمع SQL المخصص.

  5. اختر نقطة الاستعادة المطلوبة باستخدام RestorePointCreationDate.

  6. قم باستعادة تجمع SQL المخصص إلى نقطة الاستعادة المطلوبة باستخدام Restore-AzSynapseSqlPool PowerShell cmdlet.

    1. لاستعادة تجمع SQL المخصص إلى مساحة عمل مختلفة، تأكد من تحديد اسم مساحة العمل الأخرى. يمكن أن تكون مساحة العمل هذه أيضا في مجموعة موارد ومنطقة مختلفة.
    2. للاستعادة إلى اشتراك مختلف، راجع القسم أدناه.
  7. تحقق من أن تجمع SQL المخصص المستعاد متصل بالإنترنت.


$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

استعادة تجمع SQL مخصص موجود إلى اشتراك مختلف من خلال PowerShell

عند إجراء استعادة عبر الاشتراك، يمكن لمساحة عمل المشبك المخصصة SQL فقط الاستعادة إلى تجمع SQL مخصص مستقل (سابقا SQL DW). يشبه PowerShell أدناه ما سبق ولكن هناك ثلاثة اختلافات رئيسية:

  • بعد استرداد كائن تجمع SQL المراد استعادته، يجب تبديل سياق الاشتراك إلى اسم الاشتراك الوجهة (أو الهدف).
  • عند إجراء الاستعادة، استخدم وحدات Az.Sql النمطية بدلا من وحدات Az.Synapse النمطية.
  • إذا كان مطلوبا لاستعادة تجمع SQL المخصص إلى مساحة عمل Synapse في الاشتراك الوجهة، فستكون هناك حاجة إلى خطوة استعادة إضافية.

الخطوات:

  1. افتح PowerShell.

  2. تحديث وحدة Az.Sql إلى 3.8.0 (أو أحدث) إذا لزم الأمر

  3. الاتصال إلى حساب Azure الخاص بك وسرد جميع الاشتراكات المرتبطة بحسابك.

  4. حدد الاشتراك الذي يحتوي على تجمع SQL المراد استعادته.

  5. أدرج نقاط الاستعادة لتجمع SQL المخصص.

  6. اختر نقطة الاستعادة المطلوبة باستخدام RestorePointCreationDate.

  7. حدد الاشتراك الوجهة الذي يجب استعادة تجمع SQL فيه.

  8. استعادة تجمع SQL المخصص إلى نقطة الاستعادة المطلوبة باستخدام cmdlet Restore-AzSqlDatabase PowerShell.

  9. تحقق من أن تجمع SQL المخصص المستعاد (SQL DW سابقا) متصل بالإنترنت.

  10. إذا كانت الوجهة المطلوبة هي مساحة عمل Synapse، فقم بإلغاء التعليق على التعليمة البرمجية لتنفيذ خطوة الاستعادة الإضافية.

    1. إنشاء نقطة استعادة لمستودع البيانات الذي تم إنشاؤه حديثا.
    2. استرداد آخر نقطة استعادة تم إنشاؤها باستخدام بناء الجملة "تحديد -آخر 1".
    3. قم بإجراء الاستعادة إلى مساحة عمل Synapse المطلوبة.
$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 a 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 $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"

# 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 $Database.ID

# 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

الخطوات التالية