คำถามติดแท็ก mongodb

MongoDB เป็นฐานข้อมูลเชิงเอกสาร (หรือที่เรียกว่าฐานข้อมูล NoSQL)

5
ฉันจะเรียกใช้ mongod ในพื้นหลังบน unix (mac osx) ได้อย่างไร?
ฉันต้องการเรียกใช้ mongod ในพื้นหลังเป็นสิ่งที่นำเสนอเสมอ อะไรจะเป็นวิธีที่ดีที่สุดในการทำเช่นนี้? ชนิดของวิธีที่ฉันสามารถเรียกใช้ MySQL เมื่อเริ่มต้นและมันมักจะทำงานอยู่ในพื้นหลังเสมอ อาจเป็นเพียงสคริปต์ทุบตีบางส่วน แต่มันจะดีถ้าได้ยินว่ามีวิธีที่ดีกว่า หากเป็นเพียงทุบตี - สิ่งที่จะมีลักษณะอย่างไร ขอบคุณ

1
วิธีการติดตั้งแพ็คเกจ pecl รุ่นเก่า
ฉันมีรหัสนี้ $passengerId = new \MongoId(oPassenger->getId()); return $this->createQueryBuilder('Device') ->update() ->multiple(true) ->field('activated')->set(false) ->field('passenger')->unsetField()->equals($passengerId) ->field('_id')->notEqual($deviceId) ->getQuery() ->execute(); ซึ่งทำงานได้ดีบนเซิร์ฟเวอร์ dev ของฉัน แต่เกิดปัญหากับเครื่องของฉัน วิ่งpecl listบน dev ส่งคืน APC 3.1.13 beta amqp 1.2.0 stable intl 3.0.0 stable mongo 1.3.7 stable และผลตอบแทนท้องถิ่น: mongo 1.5.6 stable xdebug 2.2.5 stable ข้อความแสดงข้อผิดพลาดบนเครื่องของฉันคือ "name":"MongoException","message":"Invalid object ID"},"code":500} ฉันได้ลองลดรุ่น mongo ในประเทศของฉันแล้ว แต่ฉันไม่สามารถเข้าใจได้ด้วยเอกสารที่ไม่ดีของ pecl …
29 php  mac-osx  mongodb  pecl  pear 

5
ปิด atime บนระบบไฟล์
ฉันกำลังตั้งค่าชุดจำลอง mongoDB และสิ่งแรกที่ฉันควรทำคือปิด atime บนระบบไฟล์ หลังจากค้นคว้าข้อมูลเพียงเล็กน้อยนี้ฉันไม่ได้คัดค้านการทำเช่นนี้ แต่ฉันต้องถามว่า atime ใช้อะไร? ฉันได้ค้นหา interwebs และพบว่ามีน้อยมากในเรื่องของ "applciaiton นี้หรือกระบวนการนี้ใช้ atime และคุณจะงี่เง่าถ้าคุณปิดมัน" คำเตือนต่าง ๆ แต่เป็นคนหวาดระแวงโดยธรรมชาติฉันต้องสงสัย ดังนั้นสิ่งที่ใช้เวลาและถ้าฉันปิดมันสิ่งที่จะทำลาย?

2
/etc/security/limits.conf ข้อ จำกัด ซอฟต์ nproc ดูเหมือนจะถูกละเว้น
ฐานข้อมูล MongoDB ของฉันทำงานเป็นปัญหาภายใต้การโหลดโดยมีข้อผิดพลาดต่อไปนี้ที่ทำให้สแปมบันทึก: [initandlisten] pthread_create failed: errno:11 Resource temporarily unavailable [initandlisten] can't create new thread, closing connection ฉันได้ข้อสรุปว่าฉันจำเป็นต้องเพิ่มการตั้งค่า "ulimit -u" หรือ "กระบวนการสูงสุด" ซึ่งอยู่ที่ 1024 และการใช้งานอาจเกินกว่าที่กำหนดไว้เมื่อเปิดส่วนหน้าเว็บ (ไม่แน่ใจว่าจะตรวจสอบอย่างไร) . ฉันแก้ไข /etc/security/limits.conf เพื่อเพิ่มสองบรรทัดสุดท้าย (สองบรรทัดแรกมีอยู่แล้ว): * soft nofile 350000 * hard nofile 350000 * soft nproc 30000 * hard nproc 30000 จากนั้นฉันรีบูตระบบ (BTW ฉันควรทำเช่นนั้นหรือควรเริ่มบริการ …

2
วิธีการเชื่อมต่อกับเซิร์ฟเวอร์ mongodb ผ่านทาง ssh tunnel
มันง่ายสำหรับฉันที่จะเชื่อมต่อกับเซิร์ฟเวอร์ mysql ระยะไกลของฉันบน AWS โดยใช้ภาคต่อแต่ฉันพยายามทำสิ่งเดียวกันกับ MongoDB ฉันพยายามตั้งค่า ssh tunnel ผ่าน command line ดังนี้: ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com ฉันยังลองเปลี่ยนโฮสต์ด้วยที่อยู่ IP ความคิดคือการส่งต่อการเชื่อมต่อ MongoDB ทั้งหมดบนพอร์ต 9999 ไปยังหนึ่งในโฮสต์บนพอร์ต 27,101 .. อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่ง: mongo --host localhost --port 9999 การเชื่อมต่อล้มเหลวฉันได้รับสิ่งนี้แทน: MongoDB shell version: 2.6.0 connecting to: localhost:9999/test channel 2: open failed: connect …

2
ชุดแบบจำลอง MongoDB ต้องการสมาชิกอย่างน้อย 2 หรือ 3 คนหรือไม่?
เอกสารที่นี่บอกว่าสาม: http://docs.mongodb.org/manual/tutorial/deploy-replica-set/ "ชุดแบบจำลองต้องการระบบที่แตกต่างกันสามระบบ ... " ในขณะที่เอกสารที่นี่บอกว่าสอง: http://docs.mongodb.org/manual/core/replication/ "ชุดแบบจำลองส่วนใหญ่ประกอบด้วยชุดคำสั่ง mongod สองชุดขึ้นไป ... " ใครรู้ว่าถูกต้องหรือไม่
16 mongodb 

4
วิธีรีเซ็ตการตั้งค่าชุดจำลอง MongoDB
ฉันต้องการเริ่มต้นการกำหนดค่าของแบบจำลองเป็นไปได้หรือไม่ จะรีเซ็ตได้อย่างไร? ในกลุ่มคนที่บอกว่าจะลบเนื้อหาฐานข้อมูล แต่มีการแก้ไขหรือไม่?
16 mongodb 

1
เป็นไปได้หรือไม่ที่จะกู้คืนฐานข้อมูล MongoDB จาก. NS และ. 0, .1, ... ไฟล์
ฉันมีการติดตั้ง MongoDB 2.0.4 บน Ubuntu 12.10 เมื่อเร็ว ๆ นี้ฉันมีปัญหาในการเชื่อมต่อกับฐานข้อมูลจากภายนอกและคิดว่ามีบางอย่างที่ทำให้ MongoDB เริ่มทำงานไม่ถูกต้อง เป็นข้อเสนอแนะในหลายแหล่งที่มา (ดู StackOverflow) ฉันออกและวิ่ง/var/lib/mongodb/mongodb.lock mongod --repairสิ่งนี้ไม่ได้แก้ปัญหา MongoDB จะไม่ทำงานและสร้างไฟล์ล็อคที่มันไม่ดูแลในการลบหลังจากนั้น เมื่อดูที่บันทึกฉันรู้ว่ามันไม่สามารถเข้าถึงบางโฟลเดอร์ที่เรียกว่า$tmpSomethingดังนั้น (เนื่องจากชื่อแนะนำโฟลเดอร์ชั่วคราว) ฉันลบมันและหลังจากนั้นมันก็ใช้งานได้ ... ยกเว้นความจริงที่ว่าฉันมีเพียงหนึ่ง จากฐานข้อมูลก่อนหน้าของฉันในขณะที่คนอื่นยังคงอยู่ที่นั่นเพราะ/var/lib/mongodb/โฟลเดอร์ของฉันยังคงเต็ม.ns .0 .1 .nไฟล์ที่มีน้ำหนักมาก มีวิธีกู้คืนข้อมูลเหล่านั้นในฐานข้อมูลหรือไม่? (ฉันได้ลองกับ mongorestore แต่อย่างที่ฉันคาดไว้มันไม่ได้จัดการกับไฟล์เหล่านั้น) ขอบคุณ

5
Mongodb - วิธีที่เหมาะสมในการหมุนเวียนบันทึก
Mongo docsบอกว่าฉันทำได้: ใช้สัญญาณ -SIGUSR1 และรับบันทึกการเปลี่ยนชื่อเก่าและสวิตช์ปัจจุบัน ใช้ logrotate จากระบบปฏิบัติการ ฉันต้องการความสามารถในการ logrotate ของระบบปฏิบัติการที่จะ zip ไฟล์เก่าและลบเก่าที่สุด แต่ไม่เห็นวิธีที่จะบอกกระบวนการ mongod เพื่อเปลี่ยนบันทึกปัจจุบันนอกเหนือจากการส่ง SIGUSR1 ดังนั้นฉันจึงเขียน /var/log/mongodb/*.log { daily rotate 5 compress dateext missingok notifempty sharedscripts postrotate /usr/bin/killall -SIGUSR1 mongod /usr/bin/killall -SIGUSR1 mongos endscript } ถึง /etc/logrotate.d/mongo และตอนนี้รับ logfiles ที่มีชื่อดีจาก logrotate และ logfiles ว่างเปล่าเช่นmongodb.log.2013-09-18T23-49-44ร่องรอยของการสลับ SIGUSR1 วิธีการกำจัดหลัง?

8
ฮาร์ดแวร์ใดที่ทำให้เซิร์ฟเวอร์ MongoDB ดี หาได้ที่ไหน
สมมติว่าคุณอยู่บน dell.com ในขณะนี้และคุณกำลังซื้อเซิร์ฟเวอร์เพื่อเรียกใช้ฐานข้อมูล MongoDB สำหรับการเริ่มต้นเล็ก ๆ ของคุณ คุณจะต้องจัดการกับการเขียนและอ่านนับหมื่นต่อนาที (แต่เป็นวัตถุขนาดเล็ก) คุณจะไปสำหรับโปรเซสเซอร์ 2 ตัวหรือไม่? ลงทุนมากขึ้นกับ RAM? ฉันได้ยิน (แก้ไขให้ฉันถ้าฉันผิด) MongoDB จัดการได้มากที่สุดเท่าที่จะทำได้บน RAM แล้วล้างข้อมูลทุกอย่างในดิสก์ในกรณีนี้ฉันควรลงทุน CPU ที่มีแคช L2 ขนาดใหญ่อาจ> RAM 40GB และไดรฟ์ของรัฐที่มั่นคง .. ใช่มั้ย ฉันจะดีกว่านี้ด้วยเซิร์ฟเวอร์ระดับ high-end (~ $ 11,309, โปรเซสเซอร์ราคาแพง 2 ตัว, RAM 96GB) หรือ 2x (~ $ 6,419, โปรเซสเซอร์ราคาแพง 2 ตัว, RAM ขนาด 12GB) …

3
MongoDB และชุดข้อมูลที่ไม่พอดีกับ RAM ไม่ว่าคุณจะผลักอย่างไร
สิ่งนี้ขึ้นอยู่กับระบบเป็นอย่างมาก แต่มีโอกาสใกล้ที่แน่นอนว่าเราจะขยายขอบเขตหน้าผาตามอำเภอใจและเข้าสู่ปัญหาจริง ฉันอยากรู้ว่ากฎของหัวแม่มือมีอยู่เท่าไหร่สำหรับอัตราส่วน RAM ต่อพื้นที่ว่างในดิสก์ที่ดี เรากำลังวางแผนระบบรอบต่อไปของเราและต้องเลือกตัวเลือกบางอย่างเกี่ยวกับ RAM, SSD และจำนวนโหนดใหม่ที่จะได้รับ แต่ตอนนี้สำหรับรายละเอียดประสิทธิภาพ! ในช่วงเวิร์กโฟลว์ปกติของการดำเนินการโครงการเดียว MongoDB จะได้รับผลกระทบสูงมากจากการเขียน (70-80%) เมื่อขั้นตอนที่สองของไปป์ไลน์การประมวลผลได้รับผลกระทบการอ่านจะสูงมากเนื่องจากต้องทำซ้ำระเบียนที่ระบุในการประมวลผลครึ่งแรก นี่คือเวิร์กโฟลว์ที่สร้าง "ชุดการทำงานของคุณไว้ใน RAM" และเรากำลังออกแบบตามสมมติฐานนั้น ชุดข้อมูลทั้งหมดถูกตีอย่างต่อเนื่องโดยมีการสุ่มแบบสอบถามจากแหล่งที่มาของผู้ใช้ปลายทาง แม้ว่าความถี่จะไม่สม่ำเสมอ แต่ขนาดมักจะค่อนข้างเล็ก (10 กลุ่มของเอกสาร) เนื่องจากเป็นแบบผู้ใช้การตอบกลับจึงต้องอยู่ภายใต้เกณฑ์ "เบื่อตอนนี้" เป็นเวลา 3 วินาที รูปแบบการเข้าถึงนี้มีโอกาสน้อยที่จะอยู่ในแคชดังนั้นจะมีแนวโน้มที่จะเกิดการพบดิสก์มาก เวิร์กโฟลว์การประมวลผลรองคือการอ่านค่าสูงของการประมวลผลก่อนหน้าซึ่งอาจเป็นวันสัปดาห์หรือเดือนเก่าและมีการเรียกใช้ไม่บ่อยนัก แต่ยังคงต้องมีกำลังใจ สามารถเข้าถึงเอกสารได้สูงสุด 100% ในการดำเนินการประมวลผลก่อนหน้า ฉันสงสัยว่าจะไม่มีแคชอุ่นเครื่องในจำนวนนี้ ขนาดเอกสารเสร็จแตกต่างกันไป แต่ขนาดเฉลี่ยอยู่ที่ประมาณ 8K ส่วนที่มีการอ่านสูงของการประมวลผลโครงการปกติแนะนำอย่างยิ่งให้ใช้ Replicas เพื่อช่วยกระจายปริมาณการอ่าน ฉันได้อ่านที่อื่นว่า 1:10 RAM-GB ถึง HD-GB เป็นกฎที่ดีสำหรับดิสก์ช้าเนื่องจากเรากำลังพิจารณาอย่างจริงจังว่าจะใช้ SSD ที่เร็วกว่ามากฉันต้องการทราบว่ามีกฎที่คล้ายคลึงกันหรือไม่ …

3
ทำไมหลังจากลบคอลเลกชัน 110+ GB แล้วไดเรกทอรี / var / lib / mongodb ของฉันยังมีขนาดเท่ากัน
ฉันมีปัญหากับ MongoDB และการใช้พื้นที่ โดยเฉพาะอย่างยิ่งฉันเคยมีชุดใหญ่ประมาณ 600 ล้านบันทึกรวม 110+ GB บนดิสก์ เมื่อเร็ว ๆ นี้ฉันตัดสินใจที่จะทิ้งเพราะข้อมูลล้าสมัยฉันจึงทิ้งคอลเล็กชันผ่านเว็บอินเตอร์เฟสของ rockmongo rockmongo ไม่แสดงคอลเลคชั่นให้ฉันอีกต่อไปอย่างไรก็ตามการใช้งานดิสก์ของฉันไม่ได้เปลี่ยนแปลงเลย มีการดำเนินการใหม่ทั้งหมดที่ฉันไม่ทราบหรือไม่ซึ่งจะต้องเรียกใช้เพื่อซิงโครไนซ์ฐานข้อมูลกับไฟล์ฐานข้อมูลบนดิสก์ ฉันได้ลองทำการ "ซ่อมแซม" แต่ระบบบ่นว่ามีพื้นที่ไม่เพียงพอบนดิสก์ ... นั่นเป็นเพราะ MongoDB ใช้ทั้งหมด

3
node.js, Mongodb, Redis, การลดลงของประสิทธิภาพของ Ubuntu ในการผลิต, RAM ฟรี, CPU 100%
ตามที่ชื่อคำถามแสดงว่าฉันมีเวลายากที่จะทราบว่าสามารถปรับปรุงอะไรในแอปพลิเคชันของฉัน (หรือปรับในระบบปฏิบัติการ, Ubuntu) เพื่อให้ได้ประสิทธิภาพที่ยอมรับได้ แต่ก่อนอื่นฉันจะอธิบายสถาปัตยกรรม: เซิร์ฟเวอร์ front-end เป็นเครื่อง 8 คอร์ที่มี 8 gigs RAM ใช้งาน Ubuntu 12.04 แอปพลิเคชั่นเขียนทั้งหมดใน javascript และทำงานใน node.js v 0.8.22 (เนื่องจากโมดูลบางตัวดูเหมือนจะบ่นกับโหนดเวอร์ชั่นใหม่กว่า) ฉันใช้ nginx 1.4 ถึงปริมาณการรับส่งข้อมูลพร็อกซี HTTP จากพอร์ต 80 และ 443 ถึง 8 คนทำงานโหนดที่จัดการ และเริ่มใช้โหนดคลัสเตอร์ api ฉันใช้ socket.io เวอร์ชันล่าสุด 0.9.14 เพื่อจัดการการเชื่อมต่อ websocket ซึ่งฉันได้เปิดใช้งานเฉพาะ websockets และ xhr-polling เป็นการขนส่งที่มีอยู่ ในเครื่องนี้ฉันยังใช้งาน Redis …

2
หลาย Mongos บนเซิร์ฟเวอร์เดียว
ฉันไม่ได้พูดคุยเกี่ยวกับsharding เรามีเซิร์ฟเวอร์ทดสอบ (linux) และมีอยู่แล้วmongoซึ่งเป็นของโปรเจ็กต์ย่อย / อื่น เป็นไปได้ไหมที่จะใช้งานอินสแตนซ์ที่แยกได้หลายตัวของmongodbเครื่องเดียว ฉันจะทำมันได้อย่างไร
11 mongodb 

3
นี่เป็นกลยุทธ์การสำรองข้อมูลที่ถูกต้องสำหรับ MongoDB หรือไม่?
ฉันมีเซิร์ฟเวอร์เฉพาะเครื่องเดียวที่มีฐานข้อมูล MongoDB ประมาณ 10GB ฉันต้องสำรองข้อมูลรายวัน แต่ฉันไม่สามารถหยุดทำงานกับฐานข้อมูลได้ เป็นไปได้หรือไม่ที่จะใช้ชุดเรพลิกาบนดิสก์เดียว (ด้วย mongod 2 อินสแตนซ์ที่ทำงานบนพอร์ตที่ต่างกัน) และใช้ออฟไลน์รองและสำรองไฟล์ข้อมูลไปยังที่จัดเก็บนอกสถานที่เช่น S3 (เปิดการบันทึก) หรือจะใช้ master / slave ดีกว่าชุด replica หรือไม่? สิ่งนี้เป็นไปได้หรือไม่และหากเป็นเช่นนั้นฉันจะมีปัญหาที่อาจเกิดขึ้นได้อย่างไร ถ้าไม่ฉันจะทำให้ความคิดนี้ทำงานอย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.