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

ابدأ من نوع الانتظار على الأساسي

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

رتّب عبء العمل حسب تكرار التثبيت قبل أن تستنتج أي شيء عن الرابط.

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

اتبع الإقرار إلى الثانوي

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

امشِ المسار بالترتيب وقِس كل مرحلة بدل الكل. تنتقل سجلات السجل عبر النقل، ويكتبها الثانوي ويُفرغها، ويعود الإقرار عبر المسار نفسه. تأخير النقل وجدولة الثانوي وكمون قرص سجل الثانوي كلها تدخل في الإجمالي، وأولها وحده يخص مالك الشبكة. أما الثانوي المشبع حجم سجله بشيء آخر فيمكنه أن يمدّ كل تثبيت بينما يقف الرابط عاطلًا.

SELECT ag.name AS ag_name, drs.database_id, drs.synchronization_state_desc,
       drs.log_send_queue_size, drs.redo_queue_size
FROM sys.dm_hadr_database_replica_states AS drs
JOIN sys.availability_groups AS ag ON ag.group_id = drs.group_id;

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

قِس المسار لا الرابط

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

أبقِ أمن نقل قاعدة البيانات وضوابط الوصول سليمة أثناء القياس. قياس مسار ليس أبدًا سببًا لتجاوزهما.

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

ما الذي يغيّره الوضع غير المتزامن فعلًا

يزيل التثبيت غير المتزامن الانتظار لتأكيد التحصين من الثانوي، ولهذا تصبح الكتابة أسرع ولهذا يتغير موقف المتانة لديك. يؤكد الأساسي المعاملة دون ذلك التأكيد البعيد. ثم يُسمح للثانوي بالتخلف، وهذا التخلف هو التعرض.

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

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

مقالات ذات صلة