تكوين وقت تشغيل تكامل Azure-SSIS لاستمرارية الأعمال والتعافي من الكوارث (BCDR)

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

يمكن دمج قاعدة بيانات Azure SQL / المثيل المُدار وخدمات تكامل خادم SQL (SSIS) في Azure Data Factory (ADF) أو خطوط أنابيب المشبك باعتباره الحل الموصى به للنظام الأساسي كخدمة (PaaS) لترحيل SQL Server. يمكنك توزيع مشاريع SSIS الخاصة بك في قاعدة بيانات كتالوج SSIS (SSISDB) التي تستضيفها قاعدة بيانات Azure SQL / المثيل المُدار وتشغيل حزم SSIS في وقت تشغيل تكامل Azure SSIS (IR) في ADF أو خطوط أنابيب Synapse.

لاستمرارية الأعمال والتعافي من الكوارث (BCDR)، يمكن تكوين قاعدة بيانات Azure SQL/المثيل المدار مع مجموعة النسخ المتماثل الجغرافي/تجاوز الفشل، حيث سيتم نسخ SSISDB في منطقة Azure الأساسية مع الوصول للقراءة والكتابة (الدور الأساسي) باستمرار إلى منطقة ثانوية مع وصول للقراءة فقط (دور ثانوي). عندما تحدث كارثة في المنطقة الأساسية، سيتم تشغيل تجاوز الفشل، حيث ستتبادل SSISDBs الأساسي والثانوي الأدوار.

بالنسبة إلى BCDR، يمكنك أيضاً تكوين زوج Azure SSIS IR مزدوج الاستعداد يعمل بالتزامن مع قاعدة بيانات Azure SQL/مجموعة تجاوز فشل المثيل المُدار. يتيح لك هذا الحصول على زوج من IRs Azure-SSIS قيد التشغيل والذي في أي وقت، يمكن لشخص واحد فقط الوصول إلى SSISDB الأساسي لجلب الحزم وتنفيذها، بالإضافة إلى كتابة سجلات تنفيذ الحزمة (الدور الأساسي)، بينما يمكن للآخر القيام بذلك فقط، والشيء نفسه بالنسبة إلى الحزم التي تم نشرها في مكان آخر، على سبيل المثال في ملفات Azure (دور ثانوي). عند حدوث تجاوز فشل SSISDB، ستتبادل الأجهزة IRs الأساسية والثانوية في Azure-SSIS الأدوار، وإذا كان كلاهما قيد التشغيل، فسيكون هناك وقت تعطل يقترب من الصفر.

توضح هذه المقالة كيفية تكوين Azure-SSIS IR باستخدام مجموعة تجاوز فشل قاعدة بيانات Azure SQL/المثيل المُدار لـ BCDR.

قم بتكوين زوج Azure-SSIS IR مزدوج الاستعداد مع مجموعة تجاوز فشل قاعدة بيانات Azure SQL

لتكوين زوج Azure-SSIS IR مزدوج الاستعداد يعمل بالتزامن مع مجموعة تجاوز فشل قاعدة بيانات Azure SQL، أكمل الخطوات التالية.

  1. باستخدام بوابة Azure/واجهة مستخدم ADF، يمكنك إنشاء Azure-SSIS IR جديد باستخدام خادم قاعدة بيانات Azure SQL الأساسي لاستضافة SSISDB في المنطقة الأساسية. إذا كان لديك Azure-SSIS IR متصل بالفعل بـ SSIDB مستضاف بواسطة خادم قاعدة بيانات Azure SQL الأساسي ولا يزال قيد التشغيل، فأنت بحاجة إلى إيقافه أولاً لإعادة تكوينه. سيكون هذا هو Azure-SSIS IR الأساسي الخاص بك.

    عند تحديد استخدام SSISDB في صفحة إعدادات النشر في جزء إعداد وقت تشغيل التكامل، حدد أيضا خانة الاختيار استخدام زوج وقت تشغيل تكامل Azure-SSIS في وضع الاستعداد المزدوج مع تجاوز فشل SSISDB. بالنسبة إلى اسم زوج الاستعداد المزدوج، أدخل اسما لتعريف زوج من IRs Azure-SSIS الأساسي والثانوي. عند إكمال إنشاء Azure-SSIS IR الأساسي الخاص بك، سيتم بدء تشغيله وإرفاقه بـ SSISDB الأساسي الذي سيتم إنشاؤه نيابةً عنك مع حق الوصول للقراءة والكتابة. إذا قمت بإعادة تكوينه للتو، فستحتاج إلى إعادة تشغيله.

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

  3. باستخدام بوابة Azure/واجهة مستخدم ADF، يمكنك إنشاء Azure-SSIS IR آخر باستخدام خادم قاعدة بيانات Azure SQL الثانوي لاستضافة SSISDB في المنطقة الثانوية. سيكون هذا هو Azure-SSIS IR الثانوي الخاص بك. للحصول على BCDR الكامل، تأكد من أن جميع الموارد التي يعتمد عليها يتم إنشاؤها أيضاً في المنطقة الثانوية، على سبيل المثال Azure Storage لتخزين البرامج النصية/الملفات المخصصة للإعداد، ADF للتنسيق/جدولة تنفيذ الحزم،... إلخ.

    عند تحديد استخدام SSISDB في صفحة إعدادات النشر في جزء إعداد وقت تشغيل التكامل، حدد أيضا خانة الاختيار استخدام زوج وقت تشغيل تكامل Azure-SSIS في وضع الاستعداد المزدوج مع تجاوز فشل SSISDB. بالنسبة إلى اسم زوج الاستعداد المزدوج، أدخل نفس الاسم لتعريف زوج من IRs Azure-SSIS الأساسي والثانوي. عند إكمال إنشاء Azure-SSIS IR الثانوي الخاص بك، سيتم بدء تشغيله وإرفاقه بـ SSISDB الثانوي.

  4. إذا كنت ترغب في الحصول على وقت تعطل يقارب الصفر عند حدوث تجاوز فشل SSISDB، فاحتفظ بكل من IRs Azure-SSIS الخاصَّين بك قيد التشغيل. يمكن فقط لـ Azure-SSIS IR الأساسي الوصول إلى SSISDB الأساسي لجلب الحزم وتنفيذها، بالإضافة إلى كتابة سجلات تنفيذ الحزم، بينما يمكن لـ Azure-SSIS IR الثانوي أن يفعل الشيء نفسه فقط للحزم التي تم نشرها في مكان آخر، على سبيل المثال في ملفات Azure.

    إذا كنت ترغب في تقليل تكلفة التشغيل، يمكنك إيقاف Azure-SSIS IR الثانوي بعد إنشائه. عند حدوث تجاوز فشل SSISDB، سيقوم الممثلون المستقلون (IRs) الأساسيون والثانويون في Azure-SSIS بتبادل الأدوار. إذا تم إيقاف Azure-SSIS IR الأساسي الخاص بك، فستحتاج إلى إعادة تشغيله. اعتماداً على ما إذا تم حقنها في شبكة افتراضية وطريقة الحقن المستخدمة، سيستغرق الأمر في غضون 5 دقائق أو حوالي 20 - 30 دقيقة حتى يتم تشغيلها.

  5. إذا كنت تستخدم ADF لتنسيق/ جدولة تنفيذ الحزمة، فتأكد من نسخ جميع مسارات ADF ذات الصلة مع تنفيذ أنشطة حزمة SSIS والمشغلات المرتبطة بها إلى ADF الثانوي الخاص بك مع تعطيل المشغلات في البداية. عند حدوث تجاوز فشل SSISDB، تحتاج إلى تمكينها.

  6. يمكنك اختبار مجموعة تجاوز فشل قاعدة بيانات Azure SQL والتحقق من صفحة مراقبة وقت تشغيل تكامل Azure-SSIS في مدخل ADF ما إذا كان لدى IRs Azure-SSIS الأساسي والثانوي أدوارا تبديلا.

قم بتكوين زوج Azure-SSIS IR مزدوج الاستعداد مع مجموعة تجاوز فشل مثيل مُدارة Azure SQL

لتكوين زوج Azure-SSIS IR في وضع الاستعداد مزدوج يعمل بالتزامن مع مجموعة تجاوز فشل مثيل مُدارة Azure SQL، أكمل الخطوات التالية.

  1. باستخدام مدخل Microsoft Azure، يمكنك إنشاء مجموعة تجاوز الفشل لمثيلات Azure SQL المدارة الأساسية والثانوية في صفحة مجموعات تجاوز الفشل لمثيل Azure SQL المدار الأساسي.

  2. باستخدام بوابة Azure الإلكترونية/واجهة مستخدم ADF، يمكنك إنشاء Azure-SSIS IR جديد باستخدام مثيل Azure SQL المُدار الأساسي لاستضافة SSISDB في المنطقة الأساسية. إذا كان لديك Azure-SSIS IR متصل بالفعل بـ SSIDB مستضاف بواسطة Azure SQL الأساسي المُدار ولا يزال قيد التشغيل، فأنت بحاجة إلى إيقافه أولاً لإعادة تكوينه. سيكون هذا هو Azure-SSIS IR الأساسي الخاص بك.

    عند تحديد استخدام SSISDB في صفحة إعدادات النشر في جزء إعداد وقت تشغيل التكامل، حدد أيضا خانة الاختيار استخدام زوج وقت تشغيل تكامل Azure-SSIS في وضع الاستعداد المزدوج مع تجاوز فشل SSISDB. بالنسبة إلى اسم زوج الاستعداد المزدوج، أدخل اسما لتعريف زوج من IRs Azure-SSIS الأساسي والثانوي. عند إكمال إنشاء Azure-SSIS IR الأساسي الخاص بك، سيتم بدء تشغيله وإرفاقه بـ SSISDB الأساسي الذي سيتم إنشاؤه نيابةً عنك مع حق الوصول للقراءة والكتابة. إذا قمت بإعادة تكوينه للتو، فستحتاج إلى إعادة تشغيله. يمكنك أيضا التحقق مما إذا كان قد تم نسخ SSISDB الأساسي إلى نسخة ثانوية مع حق الوصول للقراءة فقط في صفحة نظرة عامة على مثيل Azure SQL المدار الثانوي.

  3. باستخدام Azure Portal/واجهة مستخدم ADF، يمكنك إنشاء Azure-SSIS IR آخر باستخدام مثيل Azure SQL المُدار الثانوي لاستضافة SSISDB في المنطقة الثانوية. سيكون هذا هو Azure-SSIS IR الثانوي الخاص بك. للحصول على BCDR الكامل، تأكد من أن جميع الموارد التي يعتمد عليها يتم إنشاؤها أيضاً في المنطقة الثانوية، على سبيل المثال Azure Storage لتخزين البرامج النصية/الملفات المخصصة للإعداد، ADF للتنسيق/جدولة تنفيذ الحزم،... إلخ.

    عند تحديد استخدام SSISDB في صفحة إعدادات النشر في جزء إعداد وقت تشغيل التكامل، حدد أيضا خانة الاختيار استخدام زوج وقت تشغيل تكامل Azure-SSIS في وضع الاستعداد المزدوج مع تجاوز فشل SSISDB. بالنسبة إلى اسم زوج الاستعداد المزدوج، أدخل نفس الاسم لتعريف زوج من IRs Azure-SSIS الأساسي والثانوي. عند إكمال إنشاء Azure-SSIS IR الثانوي الخاص بك، سيتم بدء تشغيله وإرفاقه بـ SSISDB الثانوي.

  4. يمكن لمثيل Azure SQL المُدار تأمين البيانات الحساسة في قواعد البيانات، مثل SSISDB، عن طريق تشفيرها باستخدام المفتاح الرئيسي لقاعدة البيانات (DMK). يتم تشفير DMK نفسه بدوره باستخدام مفتاح الخدمة الرئيسي (SMK) افتراضياً. منذ سبتمبر 2021، يتم نسخ SMK من المثيل المدار الأساسي في Azure SQL إلى المثيل الثانوي أثناء إنشاء مجموعة تجاوز الفشل. إذا تم إنشاء مجموعة تجاوز الفشل قبل ذلك، فالرجاء حذف جميع قواعد بيانات المستخدم، بما في ذلك SSISDB، من مثيل Azure SQL المُدار الثانوي وإعادة إنشاء مجموعة تجاوز الفشل.

  5. إذا كنت ترغب في الحصول على وقت تعطل يقارب الصفر عند حدوث تجاوز فشل SSISDB، فاحتفظ بكل من IRs Azure-SSIS الخاصَّين بك قيد التشغيل. يمكن فقط لـ Azure-SSIS IR الأساسي الوصول إلى SSISDB الأساسي لجلب الحزم وتنفيذها، بالإضافة إلى كتابة سجلات تنفيذ الحزم، بينما يمكن لـ Azure-SSIS IR الثانوي أن يفعل الشيء نفسه فقط للحزم التي تم نشرها في مكان آخر، على سبيل المثال في ملفات Azure.

    إذا كنت ترغب في تقليل تكلفة التشغيل، يمكنك إيقاف Azure-SSIS IR الثانوي بعد إنشائه. عند حدوث تجاوز فشل SSISDB، سيقوم الممثلون المستقلون (IRs) الأساسيون والثانويون في Azure-SSIS بتبادل الأدوار. إذا تم إيقاف Azure-SSIS IR الأساسي الخاص بك، فستحتاج إلى إعادة تشغيله. اعتماداً على ما إذا تم حقنها في شبكة افتراضية وطريقة الحقن المستخدمة، سيستغرق الأمر في غضون 5 دقائق أو حوالي 20 - 30 دقيقة حتى يتم تشغيلها.

  6. إذا كنت تستخدم Azure SQL Managed Instance Agent لتنفيذ حزمة التنسيق/الجدولة، فتأكد من نسخ جميع مهام SSIS ذات الصلة بخطوات الوظيفة والجدول الزمني المقترن بها إلى مثيل Azure SQL المدار الثانوي مع تعطيل الجداول في البداية. باستخدام SSMS، أكمل الخطوات التالية.

    1. لكل مهمة SSIS، انقر بزر الماوس الأيمن وحدد "Script Job as" و"CREATE To" و"New محرر Power Query Window" من القائمة المنسدلة لإنشاء البرنامج النصي الخاص بها.

      إنشاء برنامج نصي لوظيفة SSIS

    2. لكل برنامج نصي لمهمة SSIS تم إنشاؤه، ابحث عن الأمر لتنفيذ sp_add_job الإجراء المخزن وتعديل/إزالة تعيين القيمة إلى @owner_login_name وسيطة حسب الضرورة.

    3. لكل برنامج نصي محدث لوظيفة SSIS، قم بتشغيله على مثيل Azure SQL المُدار الثانوي لنسخ المهمة بخطوات وظيفتها والجداول المرتبطة بها.

    4. باستخدام البرنامج النصي التالي، أنشئ مهمة T-SQL جديدة لتمكين/تعطيل جداول مهام SSIS استناداً إلى دور SSISDB الأساسي/الثانوي، على التوالي، في مثيلات Azure SQL المُدارة الأساسية والثانوية وتشغيلها بانتظام. عند حدوث تجاوز فشل SSISDB، سيتم تمكين جداول عمل SSIS التي تم تعطيلها والعكس صحيح.

      IF (SELECT Top 1 role_desc FROM SSISDB.sys.dm_geo_replication_link_status WHERE partner_database = 'SSISDB') = 'PRIMARY'
         BEGIN
            IF (SELECT enabled FROM msdb.dbo.sysschedules WHERE schedule_id = <ScheduleID>) = 0
               EXEC msdb.dbo.sp_update_schedule @schedule_id = <ScheduleID >, @enabled = 1
         END
      ELSE
         BEGIN
            IF (SELECT enabled FROM msdb.dbo.sysschedules WHERE schedule_id = <ScheduleID>) = 1
               EXEC msdb.dbo.sp_update_schedule @schedule_id = <ScheduleID >, @enabled = 0
         END
      
  7. إذا كنت تستخدم ADF لتنسيق/ جدولة تنفيذ الحزمة، فتأكد من نسخ جميع مسارات ADF ذات الصلة مع تنفيذ أنشطة حزمة SSIS والمشغلات المرتبطة بها إلى ADF الثانوي الخاص بك مع تعطيل المشغلات في البداية. عند حدوث تجاوز فشل SSISDB، تحتاج إلى تمكينها.

  8. يمكنك اختبار مجموعة تجاوز فشل Azure SQL Managed Instance والتحقق من صفحة مراقبة وقت تشغيل تكامل Azure-SSIS في مدخل ADF ما إذا كانت IRs Azure-SSIS الأساسية والثانوية قد تبادلت الأدوار.

قم بإرفاق Azure-SSIS IR الجديد بـ SSISDB الحالي الذي تستضيفه قاعدة بيانات Azure SQL/مثيل مُدار

إذا حدثت كارثة وأثرت في Azure-SSIS IR الموجود لديك ولكن ليس قاعدة بيانات Azure SQL/مثيل مُدار في نفس المنطقة، فيمكنك استبداله بواحد جديد في منطقة أخرى. لإرفاق SSISDB الحالي الذي تستضيفه قاعدة بيانات Azure SQL/مثيل مُدار بـ Azure-SSIS IR جديد، أكمل الخطوات التالية.

  1. إذا كان Azure-SSIS IR الخاص بك لا يزال قيد التشغيل، فأنت بحاجة إلى إيقافه أولاً باستخدام بوابة Azure/واجهة مستخدم ADF أو Azure PowerShell. إذا أثرت الكارثة أيضاً في ADF في نفس المنطقة، فيمكنك تخطي هذه الخطوة.

  2. باستخدام SSMS، قم بتشغيل الأمر التالي لـ SSISDB في قاعدة بيانات Azure SQL/المثيل المُدار لتحديث البيانات الوصفية التي ستسمح بالاتصالات من ADF/Azure-SSIS IR الجديد.

    EXEC [catalog].[failover_integration_runtime] @data_factory_name = 'YourNewADF', @integration_runtime_name = 'YourNewAzureSSISIR'
    
  3. باستخدام مدخل Azure/واجهة مستخدم ADF أو Azure PowerShell، قم بإنشاء ADF/Azure-SSIS IR الجديد باسم YourNewADF/YourNewAzureSSISIR، على التوالي، في منطقة أخرى. إذا كنت تستخدم مدخل Microsoft Azure/واجهة مستخدم ADF، يمكنك تجاهل خطأ اتصال الاختبار في صفحة إعدادات النشر في جزء إعداد وقت تشغيل التكامل.

يمكنك التفكير في خيارات التكوين الأخرى هذه لـ Azure-SSIS IR الخاص بك: