تنفيذ تلقائي لمهام الإدارة باستخدام الوظائف المرنة (معاينة)

ينطبق على: قاعدة بيانات Azure SQL

يمكنك إنشاء وجدولة المهام المرنة التي يمكن تنفيذها بشكل دوري على قاعدة بيانات Azure SQL واحدة أو أكثر لتشغيل استعلامات Transact-SQL (T-SQL) وتنفيذ مهام الصيانة.

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

تسجل كل مهمة حالة التنفيذ وأيضًا تعيد تشغيل العمليات تلقائيًا في حالة حدوث أي فشل.

متى تستخدم الوظائف المرنة

هناك العديد من السيناريوهات التي يمكنك فيها استخدام التنفيذ التلقائي للوظائف المرنة:

  • توظيف تلقائي لمهام الإدارة وجدولتها للتشغيل كل يوم من أيام الأسبوع، وبعد ساعات، وما إلى ذلك.
    • توزيع تغييرات المخطط أو إدارة بيانات الاعتماد أو جمع بيانات الأداء أو مجموعة القياس عن بعد للمستأجر (العميل).
    • تحديث البيانات المرجعية (المعلومات المشتركة عبر جميع قواعد البيانات)، وتحميل البيانات من تخزين Azure Blob.
  • قم بتكوين الوظائف للتنفيذ عبر مجموعة من قواعد البيانات على أساس متكرر، مثلًا خلال ساعات الذروة.
    • جمع نتائج الاستعلام من مجموعة من قواعد البيانات في جدول مركزي على أساس مستمر. يمكن تنفيذ استعلامات الأداء وتكوينها باستمرار لتشغيل مهام إضافية للتنفيذ.
  • جمع البيانات لإعداد التقارير
    • تجميع البيانات من مجموعة قواعد البيانات في جدول وجهة واحد.
    • نفِّذ استعلامات معالجة البيانات التي تعمل لفترة أطول عبر مجموعة كبيرة من قواعد البيانات، على سبيل المثال بيانات تتبع استخدام العميل. تُجمع النتائج في جدول وجهة واحد لمزيد من التحليل.
  • حركات البيانات

التنفيذ التلقائي على منصات أخرى

ضع في اعتبارك تقنيات جدولة الوظائف التالية على منصات مختلفة:

  • الوظائف المرنة هي خدمات جدولة الوظائف التي تنفذ مهامًا مخصصة على قاعدة بيانات واحدة أو أكثر في قاعدة بيانات Azure SQL.
  • يتم تنفيذمهام وكيل SQL بواسطة خدمة وكيل SQL التي يستمر استخدامها للتنفيذ التلقائي للمهام في SQL Server ويتم تضمينها أيضًا في مثيلات Azure SQL المُدارة. لا تتوفر وظائف عامل SQL في قاعدة بيانات Azure SQL.

يمكن أن تستهدف الوظائف المرنة قواعد بيانات Azure SQLو التجمعات المرنة لقاعدة بيانات Azure SQLوقواعد بيانات Azure SQL في خرائط الأجزاء.

تجدر الإشارة إلى الاختلافات بين عامل SQL (المتوفر في SQL Server وكجزء من مثيل SQL المُدار)، وعامل وظيفة قاعدة البيانات المرنة (الذي يمكنه تنفيذ T-SQL على قواعد بيانات Azure SQL أو قواعد البيانات في SQL Server ومثيل Azure SQL المُدار، تحليلات Azure Synapse).

وظائف مرنة عامل SQL Server
النطاق أي عدد من قواعد البيانات في قاعدة بيانات Azure SQL و/أو مستودعات البيانات في نفس سحابة Azure مثل وكيل الوظيفة. يمكن أن تكون الأهداف في خوادم و/أو اشتراكات و/أو مناطق مختلفة.

يمكن أن تتكون المجموعات المستهدفة من قواعد بيانات فردية أو مستودعات بيانات، أو جميع قواعد البيانات في خادم أو تجمع أو خريطة جزء (يتم تعدادها ديناميكيًا في وقت تشغيل الوظيفة).
أي قاعدة بيانات فردية في نفس مثيل عامل SQL. تسمح ميزة إدارة الخوادم المتعددة في SQL Server Agent للمثيلات الرئيسية / الهدف بتنسيق تنفيذ المهمة، على الرغم من عدم توفر هذه الميزة في مثيل SQL المُدار.
واجهات برمجة التطبيقات والأدوات المتوافقة المدخل PowerShell، T-SQL، Azure Resource Manager T-SQL وSQL Server Management Studio (SSMS)

أهداف الوظيفة المرنة

توفرElastic Jobs القدرة على تشغيل نص أو أكثر من نصوص T-SQL بالتوازي، عبر عدد كبير من قواعد البيانات، وفقًا لجدول زمني أو حسب الطلب.

يمكنك تشغيل المهام المجدولة مقابل أي مجموعة من قواعد البيانات: قاعدة بيانات فردية واحدة أو أكثر، أو جميع قواعد البيانات على الخادم، أو جميع قواعد البيانات في مجموعة مرنة، أو خريطة جزء، مع مرونة إضافية لتضمين أو استبعاد أي قاعدة بيانات محددة. يمكن تشغيل الوظائف عبر خوادم متعددة، ومجموعات متعددة، ويمكن حتى تشغيلها ضد قواعد بيانات في اشتراكات مختلفة. يتم تعداد الخوادم والتجمعات ديناميكيًا في وقت التشغيل بحيث يتم تشغيل الوظائف مقابل جميع قواعد البيانات الموجودة في المجموعة المستهدفة في وقت التنفيذ.

تُظهر الصورة التالية وكيل عمل ينفذ وظائف عبر أنواع مختلفة من الفئات المستهدفة:

Elastic Job agent conceptual model

مكونات العمل المرنة

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

وكيل وظيفة مرن

وكيل الوظيفة المرنة هو مورد Azure لإنشاء الوظائف وتشغيلها وإدارتها. وكيل Elastic Job هو مورد Azure تقوم بإنشائه في البوابة (يتم دعمPowerShell و REST أيضًا).

يتطلب إنشاء Elastic Job agent قاعدة بيانات موجودة في قاعدة بيانات Azure SQL. يقوم الوكيل بتكوين قاعدة بيانات Azure SQL الحالية باعتبارها قاعدة بيانات الوظائف.

وكيل Elastic Job مجاني. تتم المحاسبة على قاعدة بيانات الوظائف بنفس معدل فوترة أي قاعدة بيانات في قاعدة بيانات Azure SQL.

قاعدة بيانات وظيفية مرنة

تُستخدم قاعدة بيانات الوظائف لتحديد الوظائف وتتبع حالة وتاريخ تنفيذ الوظائف. تُستخدم قاعدة بيانات الوظيفة أيضًا لتخزين بيانات التعريف للوكيل والسجلات والنتائج وتعريفات الوظائف، وتحتوي أيضًا على العديد من الإجراءات المخزنة المفيدة وكائنات قاعدة البيانات الأخرى لإنشاء المهام وتشغيلها وإدارتها باستخدام T-SQL.

للمعاينة الحالية؛ يلزم وجود قاعدة بيانات موجودة في قاعدة بيانات Azure SQL (S0 أو أعلى) لإنشاء وكيل Elastic Job.

يجب أن تكون قاعدة بيانات الوظيفة نظيفة أو فارغة أو S0 أو قاعدة بيانات Azure SQL ذات أهداف خدمة أعلى. هدف الخدمة الموصى به في قاعدة بيانات الوظيفة هو S1 أو أعلى، لكن الاختيار الأمثل يعتمد على احتياجات الأداء لوظيفتك (وظائفك): عدد خطوات الوظيفة، وعدد أهداف الوظيفة، ومدى تكرارها يتم تشغيل الوظائف.

إذا كانت العمليات على قاعدة بيانات الوظائف أبطأ من المتوقع، راقب أداء قاعدة البيانات واستخدام الموارد في قاعدة بيانات الوظيفة أثناء فترات البطء باستخدام مدخل Microsoft Azure أو sys.dm_db_resource_stats DMV. إذا اقترب استخدام أحد الموارد× مثل وحدة المعالجة المركزية، أو إدخال البيانات، أو كتابة السجل من 100٪ وكان مرتبطًا بفترات البطء؛ ففكر في توسيع قاعدة البيانات بشكل تدريجي لأهداف خدمة أعلى (إما في نموذج DTU أو في نموذج vCore) حتى يتم تحسين أداء قاعدة بيانات المهام بشكل كافٍ.

أذونات قاعدة بيانات الوظائف المرنة

أثناء إنشاء وكيل الوظيفة؛ يتم إنشاء مخطط وجداول ودور يسمى jobs_reader في قاعدة بيانات الوظائف. تم إنشاء الدور بالإذن التالي وتم تصميمه لمنح المسؤولين تحكمًا أفضل في الوصول لمراقبة المهام:

اسم الدور أذونات مخطط "الوظائف" أذونات مخطط "jobs_internal"
jobs_reader SELECT بلا

هام

ضع في اعتبارك الآثار الأمنية قبل منح الوصول إلى قاعدة بيانات الوظيفة كمسؤول قاعدة بيانات. يمكن للمستخدم الضار الذي لديه أذونات لإنشاء أو تحرير المهام؛ إنشاء أو تحرير مهمة تستخدم بيانات اعتماد مخزنة للاتصال بقاعدة بيانات تحت سيطرة المستخدم الضار، مما قد يسمح للمستخدم الضار بتحديد كلمة مرور بيانات الاعتماد.

المجموعة المستهدفة

تحدد المجموعة المستهدفة مجموعة قواعد البيانات التي سيتم تنفيذ خطوة المهمة عليها. يمكن أن تحتوي المجموعة المستهدفة على أي عدد ومجموعة مما يلي:

  • خادم SQL المنطقي - إذا تم تحديد خادم، فإن جميع قواعد البيانات الموجودة في الخادم وقت تنفيذ المهمة هي جزء من المجموعة. يجب توفير بيانات اعتماد قاعدة البيانات الرئيسية بحيث يمكن تعداد المجموعة وتحديثها قبل تنفيذ المهمة. لمزيد من المعلومات حول الخوادم المنطقية؛ راجع ما هو الخادم في قاعدة بيانات Azure SQL و Azure Synapse Analytics؟.
  • تجمع مرن - إذا تم تحديد تجمع مرن فإن جميع قواعد البيانات الموجودة في المجموعة المرنة في وقت تنفيذ الوظيفة هي جزء من المجموعة. بالنسبة للخادم؛ يجب توفير بيانات اعتماد قاعدة البيانات الرئيسية بحيث يمكن تحديث المجموعة قبل تنفيذ المهمة.
  • قاعدة بيانات واحدة - حدد قاعدة بيانات فردية واحدة أو أكثر لتكون جزءًا من المجموعة.
  • خريطة جزء - قواعد بيانات خريطة الأجزاء.

تلميح

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

يمكن تحديد المجمعات وقواعد البيانات الفردية على أنها مدرجة أو مستبعدة من المجموعة. يتيح ذلك إنشاء مجموعة مستهدفة بأي مجموعة من قواعد البيانات. على سبيل المثال؛ يمكنك إضافة خادم إلى مجموعة مستهدفة، لكن مع استبعاد قواعد بيانات معينة في تجمع مرن (أو استبعاد مجموعة كاملة).

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

توضح الأمثلة التالية كيف يتم تعداد تعريفات المجموعة المستهدفة المختلفة ديناميكيًا في لحظة تنفيذ الوظيفة لتحديد قواعد البيانات التي سيتم تشغيل الوظيفة:

Target group examples

يوضحالمثال 1 المجموعة المستهدفة التي تتكون من قائمة قواعد البيانات الفردية. عند تنفيذ خطوة مهمة باستخدام هذه المجموعة المستهدفة؛ سيتم تنفيذ إجراء خطوة الوظيفة في كل قاعدة من قواعد البيانات هذه.
يوضحالمثال 2 المجموعة المستهدفة التي تحتوي على خادم كهدف. عند تنفيذ خطوة مهمة باستخدام هذه المجموعة المستهدفة؛ يتم تعداد الخادم ديناميكيًا لتحديد قائمة قواعد البيانات الموجودة حاليًا في الخادم. سيتم تنفيذ إجراء خطوة الوظيفة في كل من قواعد البيانات هذه.
يوضحالمثال 3 مجموعة مستهدفة مماثلة لـ المثال 2، ولكن تم استبعاد قاعدة بيانات فردية على وجه التحديد. إجراء خطوة المهمة لن يتم تنفيذه في قاعدة البيانات المستبعدة.
يوضحالمثال 4 مجموعة مستهدفة تحتوي على تجمع مرن كهدف. على غرار المثال 2، سيتم تعداد التجمع ديناميكيًا في وقت تشغيل الوظيفة لتحديد قائمة قواعد البيانات في التجمع.

Additional target group examples

يعرضالمثال 5 والمثال 6 سيناريوهات متقدمة حيث يمكن دمج الخوادم والتجمعات المرنة وقواعد البيانات باستخدام قواعد التضمين والاستبعاد.
يوضحالمثال 7 أنه يمكن أيضًا تقييم الأجزاء الموجودة في خريطة الأجزاء في وقت تشغيل الوظيفة.

ملاحظة

يمكن أن تكون قاعدة بيانات الوظيفة نفسها هدفًا لوظيفة ما. في هذا السيناريو؛ يتم التعامل مع قاعدة بيانات الوظيفة تمامًا مثل أي قاعدة بيانات هدف أخرى. يجب إنشاء مستخدم الوظيفة ومنحه أذونات كافية في قاعدة بيانات الوظيفة، كما يجب أن تكون بيانات الاعتماد المحددة لقاعدة البيانات لمستخدم الوظيفة موجودة أيضًا في قاعدة بيانات الوظيفة، تمامًا كما هو الحال مع أي قاعدة بيانات هدف أخرى.

وظائف مرنة وخطوات وظيفية

الوظيفة هي وحدة عمل يتم تنفيذها وفقاً لجدول زمني أو كوظيفة لمرة واحدة. تتكون الوظيفة من خطوة مهمةواحدة أو أكثر.

تحدد كل خطوة مهمة برنامج نصي T-SQL لتنفيذه، ومجموعة مستهدفة واحدة أو أكثر لتشغيل البرنامج النصي T-SQL مقابلها، وبيانات الاعتماد التي يحتاجها وكيل الوظيفة للاتصال بقاعدة البيانات الهدف. تحتوي كل خطوة مهمة على نُهج للمهلة، وإعادة المحاولة قابلة للتخصيص، ويمكنها تحديد معلمات الإخراج اختياريًا.

مخرجات الوظيفة

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

سجل المهمة

اعرض سجل تنفيذ المهمة المرن في قاعدة بيانات الوظائف من خلال الاستعلام عن جدول الوظائف .job_executions. تقوم مهمة تنظيف النظام بمسح محفوظات التنفيذ الأقدم من 45 يومًا. لإزالة السجل الذي مضى عليه أقل من 45 يومًا× اتصل sp_purge_jobhistory بالإجراء المخزن في قاعدة بيانات الوظائف.

حالة المهمة

يمكنك مراقبة تنفيذ المهام المرنة في قاعدة بيانات الوظائف عن طريق الاستعلام عن وظائف الجدول .job_executions.

أداء الوكيل والقدرة والقيود

تستخدم الوظائف المرنة الحد الأدنى من موارد الحوسبة في أثناء انتظار إكمال المهام طويلة المدى.

اعتمادًا على حجم المجموعة المستهدفة من قواعد البيانات ووقت التنفيذ المطلوب لوظيفة ما (عدد العمال المتزامنين)، يتطلب الوكيل كميات مختلفة من الحساب وأداء قاعدة بيانات الوظيفة (كلما زاد عدد الأهداف و عدد أكبر من الوظائف، كلما زاد مقدار الحوسبة المطلوبة).

حاليًا؛ الحد الأقصى هو 100 وظيفة متزامنة.

منع المهام من تقليل أداء قاعدة البيانات المستهدفة

لضمان عدم إثقال الموارد عند تشغيل المهام مقابل قواعد البيانات في تجمع SQL المرن، يمكن تكوين الوظائف للحد من عدد قواعد البيانات التي يمكن تشغيلها في نفس الوقت.

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