المقدمة
يوضح هذا المستند كيفية أستكشاف أخطاء "MongoDB غير قادر على البدء" وإصلاحها على CloudCenter Orchestrator (CCO).
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
- مونغو دي بي
- بيئات الأجهزة الافتراضية
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى CloudCenter الإصدار 4.7.x/4.8.x .
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر.
المشكلة: تمت مصادفة خطأ "تعذر بدء تشغيل MongoDB"
بعد تكوين MongoDB ل CCO، من المحتمل أن يفشل عندما لا يكون قادرا على الاتصال بشكل صحيح ب MongoDB. قد تنشأ هذه القضية نتيجة لعوامل عديدة. ومع ذلك، فإن السيناريو المذكور لا يتضمن مساحة كافية على القرص الثابت في CCO لتشغيل MongoDB.
لاستكشاف هذه المشكلة وإصلاحها، من المستحسن دائما بحث ملفات السجل والتحقق من السبب الفعلي للخطأ.
من CCO سجل مقياس سرعة أنت يستطيع وجدت هذا خطأ.
INFO policy.GatewayPolicyServiceImpl Inject Context id org.springframework.web.context.WebApplicationContext: ,name Root WebApplicationContext
2017-05-22 06:58:17,077 ERROR context.ContextLoader [localhost-startStop-1] - Context initialization failed
com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector
. Client view of cluster state is {type=UNKNOWN, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception=
{com.mongodb.MongoSocketOpenException: Exception opening socket}
بمجرد محاولة بدء تشغيل خدمة MongoDB، فإنها تؤدي إلى حدوث هذا الخطأ.
service mongod start
والخطأ هو
Job for mongod.service failed. See "systemctl status mongod.service" and "journalctl -xe" for details.
هلاء بس ركضت:
sudo systemctl status mongod.service
بيطلعلك هالخطأ:
[root@localhost ~]# systemctl status mongod.service
● mongod.service - SYSV: Mongo is a scalable, document-oriented database.
Loaded: loaded (/etc/rc.d/init.d/mongod; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2017-06-23 06:07:56 UTC; 19h ago
Docs: man:systemd-sysv-generator(8)
Process: 2547 ExecStop=/etc/rc.d/init.d/mongod stop (code=exited, status=0/SUCCESS)
Process: 2588 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=1/FAILURE)
Main PID: 2350 (code=exited, status=0/SUCCESS)
Jun 23 06:07:56 localhost.localdomain systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
Jun 23 06:07:56 localhost.localdomain runuser[2597]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
Jun 23 06:07:56 localhost.localdomain mongod[2588]: Starting mongod: [FAILED]
Jun 23 06:07:56 localhost.localdomain systemd[1]: mongod.service: control process exited, code=exited status=1
Jun 23 06:07:56 localhost.localdomain systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
Jun 23 06:07:56 localhost.localdomain systemd[1]: Unit mongod.service entered failed state.
Jun 23 06:07:56 localhost.localdomain systemd[1]: mongod.service failed.
الحل
حاول بدء تشغيل خدمة MongoDB وفحص سجلات MongoDB، قد تجد هذه الأخطاء في السجل /var/log/mongodb/mongod.log .
2017-06-23T06:07:56.763+0000 [initandlisten] recover : no journal files present, no recovery needed
2017-06-23T06:07:56.763+0000 [initandlisten]
2017-06-23T06:07:56.763+0000 [initandlisten] ERROR: Insufficient free space for journal files
2017-06-23T06:07:56.764+0000 [initandlisten] Please make at least 3379MB available in /var/lib/mongo/journal or use --smallfiles
2017-06-23T06:07:56.764+0000 [initandlisten]
2017-06-23T06:07:56.809+0000 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
2017-06-23T06:07:56.809+0000 [initandlisten] dbexit:
2017-06-23T06:07:56.809+0000 [initandlisten] shutdown: going to close listening sockets...
تتطلب ذاكرة Mongo مساحة خالية على القرص الثابت تبلغ 3 جيجابايت لبدء الاستخدام. يجب التأكد من توفر مساحة كافية على القرص الثابت قبل تشغيل مثيل ومن أن إعادة تشغيل النظام ستكون مطلوبة ل MongoDB؟ للبدء تلقائيا.