استعادة تجمع SQL مخصص من مساحة عمل محذوفة

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

إشعار

هذا التوجيه مخصص لتجمعات SQL المخصصة في مساحات عمل Azure Synapse فقط. بالنسبة لتجمعات SQL المخصصة المستقلة (المعروفة سابقًا باسم SQL DW)، اتبع الإرشادات استعادة تجمع SQL من الخادم المحذوف.

قبل البدء

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

استعادة تجمع SQL من مساحة عمل تم إسقاطها

ينجز نموذج البرنامج النصي التالي الخطوات التالية:

  1. افتح PowerShell

  2. اتصل بحساب Azure الخاص بك.

  3. عيّن السياق للاشتراك الذي يحتوي على مساحة العمل التي تم إسقاطها.

  4. حدد التاريخ الذي تم فيه إسقاط مساحة العمل. تسترد هذه الخطوة التاريخ والوقت الدقيقين لتجمع SQL لمساحة العمل التي تم إسقاطها.

    • تفترض هذه الخطوة أن مساحة العمل التي تحمل نفس الاسم مجموعة الموارد والقيم نفسها لا تزال متوفرة.
    • إذا لم يكن الأمر كما هو، فقم بإعادة إنشاء مساحة العمل التي تم إسقاطها بنفس اسم مساحة العمل واسم مجموعة الموارد والمنطقة وجميع القيم نفسها من مساحة العمل التي تم إسقاطها مسبقا.
  5. إنشاء سلسلة معرف المورد لتجمع sql الذي ترغب في استرداده. يتطلب Microsoft.Sqlالتنسيق . يتضمن ذلك التاريخ والوقت الذي تم فيه إسقاط الخادم.

  6. استعادة قاعدة البيانات من مساحة العمل التي تم إسقاطها. استعادة إلى مساحة العمل الهدف مع تجمع SQL المصدر.

  7. تحقق من حالة قاعدة البيانات المستردة على أنها "متصلة".

    $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
    

استكشاف الأخطاء وإصلاحها

إذا تم تلقي الرسالة "حدث خطأ غير متوقع أثناء معالجة الطلب." قد لا تتوفر أي نقاط استرداد لقاعدة البيانات الأصلية بسبب قصر عمر مساحة العمل الأصلية. يحدث هذا عادة عندما تكون مساحة العمل موجودة لمدة لا تتجاوز ساعة واحدة.