كيف يمكنني ضمان النسخ المتماثل لـ SQL Server قيد التشغيل ؟

StackOverflow https://stackoverflow.com/questions/1004416

سؤال

لدي اثنين من مثيلات SQL Server 2005 مفصولة جغرافيا.أهمية قواعد البيانات المنسوخة نسخا متماثلا من الموقع الرئيسي إلى الثانوي باستخدام النسخ المتماثل المعاملات.

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

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

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

لا أي شخص آخر مراقبة النسخ المتماثل وكيف يمكنك أن تفعل ذلك ؟


فقط القليل من المعلومات الإضافية:

يبدو أن الليلة الماضية كانت المشكلة أن "عامل قارئ سجل" مات و لم تبدأ مرة أخرى.وأعتقد أن هذا العامل هو المسؤول عن القراءة سجل المعاملات ووضع السجلات في قاعدة البيانات التوزيع بحيث يمكن تكرارها على الموقع الثانوي.

وهذا عامل يعمل داخل SQL Server لا يمكننا ببساطة تأكد من process التشغيل في نظام التشغيل Windows.

هل كانت مفيدة؟

المحلول

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

أسهل طريقة إعداده من خلال "مراقبة النسخ المتماثل".

انتقل إلى "مراقبة النسخ المتماثل" وحدد منشور خاص.ثم حدد تحذيرات وكلاء علامة التبويب ومن ثم تكوين خاص التنبيه الذي تريد استخدامه.في حالتنا هو النسخ المتماثل:وكيل الفشل.

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

هذا يعمل بشكل جيد بما فيه الكفاية بالنسبة تنبيه لنا المشكلة حتى نتمكن من اصلاحها على الفور.

نصائح أخرى

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

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

SELECT CHECKSUM_AGG(*) 
FROM   audit_base 
WHERE  action_timestamp BETWEEN <time1> AND BETWEEN <time2> 

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

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

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

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

هذا النوع من الاختيار لديها ميزة كونها مستقلة عن عملية النسخ المتماثل - أنت لست في انتظار النسخ المتماثل عملية تسجيل استثناءات في سجلات يمكنك بدلا من ذلك بشكل استباقي اختبار بعض البيانات الفعلية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top