سؤال

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

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

ما هي الطريقة الجيدة للقيام بذلك؟

أسلوبي الحالي هو أن يكون هناك جدول متحد على أحدهما، وفي كثير من الأحيان، قم بحشو البيانات عبر السلك إلى الآخر باستخدام إدراج/تحديد.يصبح الأمر معقدًا بعض الشيء عند محاولة التعامل مع المفاتيح الأساسية وما لا.(insert ignore يبدو أنه لا يعمل بشكل صحيح)

ملاحظة.يمكنني بسهولة إنشاء استعلام يحدد الصفوف المراد نقلها.

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

المحلول 2

الحل الحالي الخاص بي هو

  • قم بإعداد جدول متحد في المربع المصدر الذي يلتقط الجدول في المربع الهدف
  • قم بإعداد طريقة عرض في المربع المصدر الذي يحدد الصفوف المراد تحديثها (كصلة للجدول المتحد)
  • قم بإعداد جدول متحد آخر في المربع الهدف الذي يلتقط العرض في المربع المصدر
  • إصدار INSERT...SELECT...ON DUPLICATE UPDATE على مربع الهدف لتشغيل السحب.

أعتقد أنه يمكنني فقط الحصول على الجدول المصدر والقيام بكل ذلك في لقطة واحدة، ولكن استنادًا إلى سجلات الاستعلام التي كنت أراها، أعتقد أنه سينتهي بي الأمر بتشغيل حوالي 20 ألف استعلام أو حوالي 100-300 ميجابايت نقل البيانات اعتمادًا على كيفية حدوث الأشياء.يؤدي الإعداد المباع أعلاه إلى حوالي 4 استعلامات ونقل بيانات أكثر قليلاً مما هو مطلوب بالفعل.

نصائح أخرى

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

http://www.howtoforge.com/mysql_database_replication للحصول على التعليمات، يجب أن تكون قائمة و تشغيل في 10-15 دقيقة، وأنك لن تضطر إلى التفكير في الأمر مرة أخرى.

والجانب السلبي الوحيد الذي أستطيع أن أراه هو أنه من غير متزامن - أي. يجب أن يكون أحد سيد المعين أن يحصل على كل التغييرات.

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