ترحيل Azure SQL Database من نموذج مستند إلى DTU إلى نموذج مستند إلى vCore

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

توضح هذه المقالة كيفية ترحيل قاعدة البيانات في Azure SQL Database من نموذج الشراء المستند إلى DTU إلى نموذج الشراء المستند إلى vCore.

ترحيل قاعدة بيانات

ترحيل قاعدة بيانات من نموذج الشراء المستند إلى DTU إلى نموذج الشراء المستند إلى vCore يشبه التحجيم بين أهداف الخدمة في طبقات الخدمة الأساسية والقياسية والمتميزة بمدة مماثلة ووقت تعطل أدنى في نهاية عملية الترحيل. يمكن ترحيل قاعدة بيانات تم ترحيلها إلى نموذج الشراء المستند إلى vCore مرة أخرى إلى نموذج الشراء المستند إلى DTU في أي وقت وبنفس الطريقة، باستثناء قواعد البيانات التي تم ترحيلها إلى طبقة الخدمة Hyperscale.

اختر طبقة الخدمة vCore وهدف الخدمة

فيما يتعلق بمعظم سيناريوهات الترحيل من DTU إلى vCore، فإن قواعد البيانات والمجموعات المرنة في طبقات الخدمة الأساسية والقياسية ستقوم بتعيين طبقة خدمة الأغراض العامة. سيتم تعيين قواعد البيانات والمجموعات المرنة في طبقة الخدمة Premium إلى طبقة الخدمة Business Critical. استنادا إلى سيناريو التطبيق ومتطلباته، يمكن غالبا استخدام طبقة خدمةHyperscale كهدف ترحيل لقواعد بيانات واحدة في جميع طبقات خدمة DTU.

لاختيار هدف الخدمة أو حجم الحساب لقاعدة البيانات التي تم ترحيلها في نموذج vCore، يمكنك استخدام قاعدة أساسية بسيطة ولكنها تقريبية: يتطلب كل 100 DTUs في الطبقات الأساسية أو القياسية 1 vCore على الأقل، بينما يتطلب كل 125 DTUs في الطبقة المتميزة 1 vCore على الأقل.

تلميح

هذه القاعدة تقريبية لأنها لا تأخذ في الاعتبار النوع المحدد للأجهزة المستخدمة لقاعدة بيانات DTU أو التجمع المرن.

في نموذج DTU، قد يحدد النظام أي تكوين أجهزة متاح لقاعدة البيانات الخاصة بك أو التجمع المرن. علاوة على ذلك، يكون لديك فقط في نموذج DTU تحكم غير مباشر على عدد vCores (وحدات CPU المنطقية) باختيار قيم DTU أو eDTU أعلى أو أقل.

في نموذج vCore، يجب على العملاء تحديد اختيار واضح لكل من تكوين الأجهزة وعدد vCore (CPUs المنطقية). بينما لا يقدم نموذج DTU هذه الخيارات، يتم عرض نوع الأجهزة وعدد CPUs المنطقية المستخدمة لكل قاعدة بيانات وتجمع مرن عبر طرق عرض الإدارة الديناميكية (DMV). وهذا يجعل من الممكن تحديد هدف خدمة vCore المطابق بدقة أكبر.

يستخدم الأسلوب التالي هذه المعلومات لتحديد هدف خدمة vCore وتخصيص موارد مماثلة للحصول على مستوى أداء مماثل بعد الترحيل إلى نموذج vCore.

تعيين DTU إلى vCore

استعلام T-SQL أدناه، عند تنفيذه في سياق قاعدة بيانات DTU المراد ترحيلها، يُرجع عدداً مطابقاً (ربما كسرياً) من vCores في كل تكوين جهاز في نموذج vCore. من خلال تقريب هذا الرقم إلى أقرب عدد من vCore المتاحة لقواعد البيانات والمجموعات المرنة في كل تكوين للأجهزة في نموذج vCore، يمكن للعملاء اختيار هدف خدمة vCore الذي هو أقرب تطابق لـقاعدة بيانات DTU الخاصة بهم أو التجمع المرن.

يتم وصف نماذج سيناريوهات الترحيل باستخدام هذا النهج في قسم الأمثلة.

يتم تنفيذ هذا الاستعلام في سياق قاعدة البيانات المراد ترحيلها، وليس في master قاعدة البيانات. عند ترحيل مجموعة مرنة، قم بتنفيذ الاستعلام في سياق أي قاعدة بيانات في المجموعة.

WITH dtu_vcore_map AS
(
SELECT rg.slo_name,
       CAST(DATABASEPROPERTYEX(DB_NAME(), 'Edition') AS nvarchar(40)) COLLATE DATABASE_DEFAULT AS dtu_service_tier,
       CASE WHEN slo.slo_name LIKE '%SQLG4%' THEN 'Gen4'
            WHEN slo.slo_name LIKE '%SQLGZ%' THEN 'Gen4'
            WHEN slo.slo_name LIKE '%SQLG5%' THEN 'Gen5'
            WHEN slo.slo_name LIKE '%SQLG6%' THEN 'Gen5'
            WHEN slo.slo_name LIKE '%SQLG7%' THEN 'Gen5'
            WHEN slo.slo_name LIKE '%GPGEN8%' THEN 'Gen5'
       END COLLATE DATABASE_DEFAULT AS dtu_hardware_gen,
       s.scheduler_count * CAST(rg.instance_cap_cpu/100. AS decimal(3,2)) AS dtu_logical_cpus,
       CAST((jo.process_memory_limit_mb / s.scheduler_count) / 1024. AS decimal(4,2)) AS dtu_memory_per_core_gb
FROM sys.dm_user_db_resource_governance AS rg
CROSS JOIN (SELECT COUNT(1) AS scheduler_count FROM sys.dm_os_schedulers WHERE status COLLATE DATABASE_DEFAULT = 'VISIBLE ONLINE') AS s
CROSS JOIN sys.dm_os_job_object AS jo
CROSS APPLY (
            SELECT UPPER(rg.slo_name) COLLATE DATABASE_DEFAULT AS slo_name
            ) slo
WHERE rg.dtu_limit > 0
      AND
      DB_NAME() COLLATE DATABASE_DEFAULT <> 'master'
      AND
      rg.database_id = DB_ID()
)
SELECT dtu_logical_cpus,
       dtu_hardware_gen,
       dtu_memory_per_core_gb,
       dtu_service_tier,
       CASE WHEN dtu_service_tier = 'Basic' THEN 'General Purpose'
            WHEN dtu_service_tier = 'Standard' THEN 'General Purpose or Hyperscale'
            WHEN dtu_service_tier = 'Premium' THEN 'Business Critical or Hyperscale'
       END AS vcore_service_tier,
       CASE WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus
            WHEN dtu_hardware_gen = 'Gen5' THEN dtu_logical_cpus * 0.7
       END AS Gen4_vcores,
       7 AS Gen4_memory_per_core_gb,
       CASE WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus * 1.7
            WHEN dtu_hardware_gen = 'Gen5' THEN dtu_logical_cpus
       END AS Gen5_vcores,
       5.05 AS Gen5_memory_per_core_gb,
       CASE WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus
            WHEN dtu_hardware_gen = 'Gen5' THEN dtu_logical_cpus * 0.8
       END AS Fsv2_vcores,
       1.89 AS Fsv2_memory_per_core_gb,
       CASE WHEN dtu_hardware_gen = 'Gen4' THEN dtu_logical_cpus * 1.4
            WHEN dtu_hardware_gen = 'Gen5' THEN dtu_logical_cpus * 0.9
       END AS M_vcores,
       29.4 AS M_memory_per_core_gb
FROM dtu_vcore_map;

عوامل إضافية

إلى جانب عدد vCore (CPUs المنطقية) ونوع الأجهزة، قد تؤثر عدة عوامل أخرى على اختيار هدف خدمة vCore:

  • يطابق استعلام تعيين Transact-SQL أهداف خدمة DTU و vCore من حيث سعة وحدة CPU، وبالتالي ستكون النتائج أكثر دقة لأحمال العمل المرتبطة بوحدة CPU.
  • بالنسبة إلى نفس نوع الأجهزة ونفس عدد vCores، تكون IOPS وحدود موارد معدل نقل بيانات سجل العملية لقواعد بيانات vCore غالباً أعلى منه لقواعد بيانات DTU. بالنسبة لأحمال العمل المرتبطة بالإدخال والإخراج، قد يكون من الممكن خفض عدد vCores في نموذج vCore لتحقيق نفس المستوى من الأداء. يتم عرض حدود الموارد الفعلية لقواعد بيانات DTU وvCore في طريقة العرض sys.dm_user_db_resource_governance. ستساعدك مقارنة هذه القيم بين قاعدة بيانات DTU أو المجموعة المراد ترحيلها، وقاعدة بيانات vCore أو المجموعة مع هدف خدمة مطابق تقريبا على تحديد هدف خدمة vCore بشكل أكثر دقة.
  • يُرجع استعلام التعيين أيضاً مقدار الذاكرة لكل مركز لقاعدة بيانات DTU أو التجمع المرن المراد ترحيله، ولكل تكوين جهاز في نموذج vCore. يعد ضمان ذاكرة إجمالية مماثلة أو أعلى بعد الترحيل إلى vCore أمرا مهما لأحمال العمل التي تتطلب ذاكرة تخزين مؤقتة لبيانات ذاكرة كبيرة لتحقيق أداء كاف، أو أعباء عمل التي تتطلب توفير ذاكرة كبيرة لمعالجة الاستعلام. لأعباء العمل هذه واعتمادا على الأداء الفعلي، قد يكون من الضروري زيادة عدد vCores للحصول على ذاكرة إجمالية كافية.
  • وينبغي النظر في استخدام الموارد التاريخية لقاعدة بيانات DTU عند اختيار هدف خدمة vCore. قد تحتاج قواعد بيانات DTU مع موارد CPU غير المستخدمة بشكل كاف إلى عدد أقل من vCores من العدد الذي تم إرجاعه من استعلام التعيين. وعلى العكس من ذلك، قد تتطلب قواعد بيانات DTU، حيث يؤدي الاستخدام العالي المستمر لوحدة CPU إلى أداء غير كاف لحمل العمل، عددا أكبر من vCores التي أرجعها الاستعلام.
  • إذا تم ترحيل قواعد البيانات ذات أنماط استخدام متقطعة أو غير متوقعة، ضع في عين الاعتبار استخدام طبقة حساب بلا خادم. لاحظ أن الحد الأقصى لعدد العاملين المتزامنين في بلا خادم هو 75٪ من الحد الأقصى في الحساب المزود لنفس العدد من الحد الأقصى لـ vCores الذي تم تكوينه. علاوة على ذلك، الذاكرة القصوى المتوفرة في بلا خادم هي 3 GB أضعاف الحد الأقصى لعدد vCores الذي تم تكوينه، وهو أقل من الذاكرة لكل ذاكرة أساسية للحوسبة المزودة. على سبيل المثال، الذاكرة القصوى لGen5 هي 120 GB عندما يتم تكوين 40 vCores كحد أقصى في وضع بلا خادم مقابل 204 GB لحساب مزود ب40 vCore.
  • في نموذج vCore، قد يختلف الحد الأقصى لحجم قاعدة البيانات المدعومة اعتماداً على الأجهزة. لقواعد البيانات الكبيرة، تحقق من الحد الأقصى للأحجام المدعومة في نموذج vCore لقواعد البيانات الفرديةوالمجموعات المرنة.
  • بالنسبة للمجموعات المرنة، فإن نموذجي DTU و vCore لديهما اختلافات في الحد الأقصى لعدد قواعد البيانات المعتمد لكل مجموعة. وينبغي مراعاة ذلك عند ترحيل المجموعات المرنة مع العديد من قواعد البيانات.
  • قد لا تتوفر بعض تكوينات الأجهزة في كل منطقة. تحقق من التوفر ضمن تكوين الأجهزة لـSQL Database.

هام

يتم توفير إرشادات تحجيم DTU إلى vCore أعلاه للمساعدة على التقدير الأولي لهدف خدمة قاعدة البيانات الهدف.

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

أمثلة ترحيل DTU إلى vCore

ملاحظة

القيم الموضحة في الأمثلة أدناه تأتي لأغراض التوضيح فقط. قد تختلف القيم الفعلية التي يتم إرجاعها في السيناريوهات الموضحة.

ترحيل قاعدة بيانات قياسية S9

يُرجع استعلام التعيين النتيجة التالية (بعض الأعمدة غير المعروضة للإيجاز):

dtu_logical_cpus dtu_hardware_gen dtu_memory_per_core_gb Gen4_vcores Gen4_memory_per_core_gb Gen5_vcores Gen5_memory_per_core_gb
24.00 Gen5 5.40 16.800 7 24.000 5.05

نرى أن قاعدة بيانات DTU لديها 24 وحدة CPU منطقية (vCores)، وذاكرة 5.4 GB لكل vCore، وتستخدم جهاز Gen5. المطابقة المباشرة مع ذلك هي قاعدة بيانات 24 vCore للأغراض العامة على أجهزة Gen5، أي هدف الخدمة vCore GP_Gen5_24.

ترحيل قاعدة بيانات قياسية S0

يُرجع استعلام التعيين النتيجة التالية (بعض الأعمدة غير معروضة للإيجاز):

dtu_logical_cpus dtu_hardware_gen dtu_memory_per_core_gb Gen4_vcores Gen4_memory_per_core_gb Gen5_vcores Gen5_memory_per_core_gb
0.25 Gen4 0.42 0.250 7 0.425 5.05

نرى أن قاعدة بيانات DTU لديها ما يعادل 0.25 من وحدات CPU منطقية (vCores)، وذاكرة 0.42 GB لكل vCore، وتستخدم جهاز Gen4. أصغر أهداف خدمة vCore في تكوينات أجهزة Gen4 وGen5، GP_Gen4_1 وGP_Gen5_2، توفر موارد حسابية أكثر من قاعدة بيانات Standard S0، لذلك لا يمكن التطابق المباشر. منذ إيقاف تشغيل أجهزة Gen4، أصبح GP_Gen5_2الخيار الأفضل. بالإضافة إلى ذلك، إذا كان حمل العمل مناسبا تماما لطبقة حساب بلا خادم سيكون GP_S_Gen5_1 أقرب مطابقة.

ترحيل قاعدة بيانات P15 Premium

يُرجع استعلام التعيين النتيجة التالية (بعض الأعمدة غير معروضة للإيجاز):

dtu_logical_cpus dtu_hardware_gen dtu_memory_per_core_gb Gen4_vcores Gen4_memory_per_core_gb Gen5_vcores Gen5_memory_per_core_gb
42.00 Gen5 4.86 29.400 7 42.000 5.05

نرى أن قاعدة بيانات DTU لديها 42 وحدة CPU منطقية (vCores)، وذاكرة 4.86 GB لكل vCore، وتستخدم جهاز Gen5. في حين لا يوجد هدف خدمة vCore مع 42 مركز معالجة، فإن هدف خدمة BC_Gen5_40 قريب جدا من حيث وحدة CPU وسعة الذاكرة، وهو مطابق جيدا.

ترحيل المجموعة المرنة 200 Basic eDTU

يُرجع استعلام التعيين النتيجة التالية (بعض الأعمدة غير معروضة للإيجاز):

dtu_logical_cpus dtu_hardware_gen dtu_memory_per_core_gb Gen4_vcores Gen4_memory_per_core_gb Gen5_vcores Gen5_memory_per_core_gb
4.00 Gen5 5.40 2.800 7 4.000 5.05

نرى أن المجموعة المرنة DTU لديها 4 وحدات CPU منطقية (vCores)، وذاكرة 5.4 GB لكل vCore، وتستخدم جهاز Gen5. المطابقة المباشرة في نموذج vCore هي مجموعة مرنة GP_Gen5_4. ومع ذلك، يدعم هدف الخدمة 200 قاعدة بيانات لكل مجموعة كحد أقصى، بينما تدعم المجموعة المرنة Basic 200 eDTU حتى 500 قاعدة بيانات. إذا كانت المجموعة المرنة المراد ترحيلها تحتوي على أكثر من 200 قاعدة بيانات، يجب أن يكون هدف خدمة vCore المطابق GP_Gen5_6، والذي يدعم ما يصل إلى 500 قاعدة بيانات.

ترحيل قواعد البيانات المنسوخة جغرافياً

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

  • عند الترقية، يجب ترقية قاعدة البيانات الثانوية أولا، ثم ترقية قاعدة البيانات الأساسية.
  • عند الرجوع إلى الإصدار الأقدم، اعكس الترتيب: يجب إرجاع قاعدة البيانات الأساسية إلى الإصدار الأقدم أولا وإرجاع قاعدة البيانات الثانوية إلى الإصدار الأقدم.

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

يوفر الجدول التالي إرشادات لسيناريوهات ترحيل محددة:

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

ترحيل مجموعات تجاوز الفشل

يتطلب ترحيل مجموعات تجاوز الفشل ذات قواعد بيانات متعددة ترحيل فردي لقواعد البيانات الأساسية والثانوية. طبق نفس الاعتبارات وقواعد التسلسل في هذه العملية. بعد تحويل قواعد البيانات إلى نموذج الشراء المستند إلى vCore، تظل مجموعة تجاوز الفشل سارية المفعول مع نفس إعدادات النهج.

إنشاء قاعدة بيانات ثانوية للنسخ المتماثل جغرافيا

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

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

استخدام نسخة قاعدة البيانات للترحيل من DTU إلى vCore

يمكنك نسخ أي قاعدة بيانات بحجم حساب مستند إلى DTU إلى قاعدة بيانات بحجم حساب مستند إلى vCore دون قيود أو تسلسل خاص طالما أن حجم الحساب الهدف يدعم الحد الأقصى لحجم قاعدة البيانات لقاعدة البيانات المصدر. تُنشئ نسخة قاعدة البيانات لقطة متسقة للمعاملات للبيانات اعتباراً من نقطة زمنية بعد بدء عملية النسخ. لا يقوم بمزامنة البيانات بين المصدر والهدف بعد تلك النقطة الزمنية المحددة.

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