mongod ขัดข้องโดยไม่มีการบันทึก

ฉันใช้ mongodb v2.2.2 บนเซิร์ฟเวอร์เดียว (Ubuntu 12.04)

มันขัดข้องโดยไม่มีการเข้าสู่ระบบ /var/log/mongodb/mongodb.log ดูเหมือนว่ามันจะขัดข้องระหว่างการบันทึก (อักขระถูกขัดจังหวะ และบันทึกนี้เป็นบันทึกการสืบค้นปกติ)

และฉันตรวจสอบ syslog เกี่ยวกับปัญหาหน่วยความจำ (เช่น killed proccess) แล้ว แต่หาไม่พบ

จากนั้น ฉันพบข้อผิดพลาดต่อไปนี้ในคำสั่ง mongo-shell(db.printCollectionStats())

DLLConnectionResultData { "ns" : "UserData.DLLConnectionResultData", "count" : 8215398, "size" : 4831306500, "avgObjSize" : 588.0794211065611, "errmsg" : "ข้อยกเว้น: การยืนยัน src/mongo/db/database.cpp:300" , "รหัส" : 0, "ตกลง" : 0 }

ฉันจะทราบปัญหาได้อย่างไร?

ขอบคุณ,


person user3242587    schedule 28.01.2014    source แหล่งที่มา
comment
ดูเหมือนว่าจะเป็นข้อผิดพลาดของหน่วยความจำ Mongod เวอร์ชัน 32 บิตหรือ 64 บิต?   -  person arunb2w    schedule 28.01.2014
comment
ขอบคุณสำหรับความคิดเห็น ฉันใช้ mongod เวอร์ชัน 64 บิต   -  person user3242587    schedule 28.01.2014
comment
โปรดตรวจสอบว่าคุณสามารถค้นหาข้อผิดพลาดในบันทึกของเซิร์ฟเวอร์ได้หรือไม่ และหากคุณเปิดใช้งานการทำเจอร์นัล โปรดปิดการใช้งานและลอง   -  person arunb2w    schedule 28.01.2014
comment
ขอบคุณ arunb2w. ฉันตรวจสอบไม่เพียงแต่ mongodb.log และ syslog เท่านั้น แต่ยังตรวจสอบ kern.log,dmesg ด้วยแต่ไม่พบข้อผิดพลาดใด ๆ ขออภัย ตอนนั้นฉันตั้งค่าระดับบันทึกไว้ที่ 1 Journaling เกี่ยวข้องกับสิ่งนี้หรือปัญหาอื่นๆ หรือไม่ (ฉันใช้ Journaling ตลอดเวลา)   -  person user3242587    schedule 30.01.2014


คำตอบ (1)


ฉันตรวจสอบบรรทัดนั้นในซอร์สโค้ดสำหรับ 2.2.2 (ดู ที่นี่ เพื่อใช้อ้างอิง) ข้อผิดพลาดนั้นเกี่ยวข้องโดยเฉพาะกับการบังคับใช้ โควต้า บน MongoDB คุณไม่ได้กล่าวถึงการบังคับใช้โควต้าที่นี่หรือสิ่งที่คุณได้ตั้งขีดจำกัดไฟล์ไว้ที่ (ค่าเริ่มต้นคือ 8) แต่คุณอาจใช้ถึงขีดจำกัดที่นี่

ก่อนอื่น ฉันขอแนะนำให้ใช้เวอร์ชัน 2.2 ที่ใหม่กว่า (และอัปเกรดเป็น 2.4 ในที่สุด แต่แน่นอนว่าเป็น 2.2.7+ ในตอนแรก) หากคุณใช้โควต้า การแก้ไขนี้ ซึ่งอยู่ในเวอร์ชัน 2.2.5 จะทำให้ข้อความบันทึกเกินโควต้า (ก่อนหน้านี้บันทึกเฉพาะที่ระดับบันทึก 1 ค่าเริ่มต้นคือระดับบันทึก 0) ดังนั้นหากการละเมิดโควต้าเป็นสาเหตุที่นี่ คุณอาจได้รับคำเตือนล่วงหน้า

หากนั่นคือสาเหตุที่แท้จริง คุณมีทางเลือก 2-3 ทาง:

  1. หลังจากอัปเกรดเป็นเวอร์ชันล่าสุด 2.2 แล้ว ปัญหาเกิดขึ้นซ้ำๆ ให้ยื่นรายงานข้อผิดพลาดสำหรับการแครชใน 2.2
  2. อัปเกรดเป็น 2.4 ตรวจสอบว่าปัญหายังคงเกิดขึ้น และแจ้งจุดบกพร่อง (หรือเพิ่มลงในรายงานด้านบนสำหรับ 2.2)

ไม่ว่าในกรณีใด การปิดโควต้าในระหว่างกาลจะเป็นวิธีที่ชัดเจนในการป้องกันข้อขัดข้อง

person Adam Comerford    schedule 28.01.2014
comment
ขอบคุณที่ตอบ Adam C. ฉันไม่ได้ใช้ขีดจำกัดโควต้า ฉันกำลังตรวจสอบโควต้า/การจัดสรรอยู่ในขณะนี้ - person user3242587; 30.01.2014