كيف يمكنني أن أقوم بتشغيل وحدة تخزين EBS بشكل صحيح مع مثيل RabbitMQ يعمل؟

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

  •  21-09-2019
  •  | 
  •  

سؤال

أنا أستخدم RabbitMQ على مثيل EC2 ولدي جداول Mnesia على وحدة تخزين EBS ، لذلك عندما أقوم بتشغيله وأحاول تشغيل مثيل آخر بنفس البيانات ، يبدو أن الجدول قيد الاستخدام بواسطة مثيل RabbitMQ آخر.

هل الطريقة الوحيدة للتغلب على هذا لإغلاق RabbitMQ للالتقاط لقطة/لقطة ثم بدء تشغيلها مرة أخرى بمجرد الانتهاء من ذلك؟

هل هناك طريقة لتنظيف الملفات بحيث لا تظهر مغلقة أم يتم فتحها بقوة؟

إنها ليست مشكلة شائعة سأواجهها ، فقط فضولي إذا كان هناك حل أفضل.

للتوضيح ، الخطأ الذي أراه هو: timeout_waiting_for_tables.

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

المحلول

لديك أولاً نظام الملفات للقلق. لست متأكدًا مما إذا كنت تستخدم LVM أو Ext3 أو XFS أو ماذا ، ولكن إذا كنت على LVM ، فقد ترغب في الخروج DMSETUP صفحة رجل; ؛ على وجه التحديد DMSetup تعليق / استئناف

سوف ينتهي بك الأمر بشيء مثل:

dmsetup suspend <dev> 
ec2-create-snapshot <vol> 
dmsetup resume <dev> 

بمجرد حصولك على نظام الملفات / التعليق ، هناك RabbitMQ يدعو للقلق. مطور RabbitMQ Matthias Radestock في تهديد البريد الإلكتروني:

لكن بالنسبة للرسائل المستمرة ، لست متأكدًا. كيف تتم إدارة rabbit_persister.log؟ هل يمكنني فقط أخذ نسخة احتياطية من ذلك كلما ، أو هل لي أن آخذ واحدة فقط من rabbit_persister.log.previous؟

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

أين أتطلع إلى معرفة عدد المرات التي يتم لفها؟

منطق تحديد وقت لفة السجل معقد إلى حد ما.

هل يمكنني تشغيل لفة يدوية؟

rabbit__persister: force_snapshot () في قذيفة erlang يقوم بالخدعة.

تفحص ال قوة snapshot الهدف في rabbitmq makefile.

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