MongoDB Cheat list และขั้นตอนการทำ Replication by heha
28
Feb0
Feb0
สรุปคำสั่ง mongoDB ที่ใช้บ่อยๆ
- use db1 – ใช้งาน database db1 หรือสร้าง database ใหม่
- show dbs – แสดงรายชื่อ database ทั้งหมด
- db.getCollectionNames() – แสดง collection (ตาราง) ทั้งหมด
- db.createCollection(“users”) – สร้าง collection ชื่อ users
- db.users.drop() – ลบ collection users
- db.createCollection(“new”, {capped:true, size:1073741824}); – สร้าง capped collection ขนาด 1073741824 bytes
- db.logMoney.find({time:{$gte: new Date(2013,2,5)}}); – query date มากกว่าเท่ากับวันที่ๆ กำหนด
- db.logMoney.ensureIndex({‘time’:1},{background:true}) – new index field time โดย background ไว้สั่งให้ทำโดยไม่ lock collection
- db.logMoney.getIndexes() - ดู Index ทั้งหมดขณะนั้น
- db.logMoney.find({time:{$gt:new Date()}}) – query ระบุเวลา สามารถใช้ร่วมกับ mongodump ได้
- db.logMoney.aggregate({$match:{time:{$gt:new Date(2013,1,1)},chng:{$lt:0}}},{$group:{_id:{usrId:1, }, count:{$sum:1}, sumAll:{$sum:”$chng”}}}) – ตัวอย่างการใช้งาน query ลักษณะเดียวกับ GROUP BY ใน MySQL
(SELECT *, COUNT(*) as count, SUM(chng) as sumAll FROM logMoney WHERE time > “2013-01-01″ AND chng < 0 GROUP BY usrId)
วิธีทำ Replication
ก่อนอื่น MongoDB แนะนำว่าควรมีเครื่องในวงอย่างน้อย 3 เครื่องครับ (แต่เราอาจจะใช้ 2 เครื่อง แล้วใช้อีกเครื่องเป็น Arbiter หรือตัวหลอกแทนได้) ขั้นตอนมีดังนี้
- Edit /etc/mongodb.conf ด้วยโปรแกรมที่ถนัด
- กำหนด replSet = <ชื่อกลุ่มที่ต้องการ> ในที่นี้ผมตั้งว่า rs0
- restart mongodb
- ทำข้อ 1-3 ใหม่กับเครื่องที่จะเป็น Slave ทุกเครื่อง
- เข้าเครื่องที่จะให้เป็น Master (สมมติว่า ip ภายในของเครื่อง master คือ 10.0.0.1) แล้วพิมพ์ mongo 10.0.0.1 (สำคัญมาก ห้ามลืมพิมพ์ ip หรือพิมพ์ผิดเด็ดขาด ไม่อย่างนั้นจะใช้ไม่ได้)
- ถ้าหน้าจอปรากฏดังนี้แสดงว่าทำได้ถูกต้อง
mongo 10.0.0.1
MongoDB shell version: 2.2.2
connecting to: 10.0.0.1/test
rs0:PRIMARY> - สั่ง rs.initiate()
- สั่ง rs.add(“10.0.0.2″) (สมมติเครื่อง slave ip 10.0.0.2) และเครื่อง slave เครื่องอื่นๆ
- เสร็จ!
สรุปคำสั่ง replication ที่ใช้บ่อย
- rs.initiate() – เริ่ม replica set
- rs.status() – status replica set
- rs.add(“ip”) – เพิ่ม secondary node
- rs.addArb(“ip”) – เพิ่ม secondary node แบบตัวหลอกเพื่อโหวตตอน fail-over เท่านั้น ไม่มีข้อมูลจริง
- rs.stepDown() – ถอนตัวจากการเป็น master
- db.printReplicationInfo() – เช็คว่า oplog มีอายุกี่วัน
วิธี Backup MongoDB
เทียบเท่า mysqldump นั่นเอง ตัวอย่างนั้นใช้ dump เฉพาะตารางที่กำหนด และ query ในช่วงเวลาที่กำหนด ดังนี้
mongodump –host –port –db <ชื่อ database> –collection <ชื่อ collection> -q ‘{“time”:{“$gte”:{“$date”:1360627200000}}}’
วิธี Restore MongoDB
mongorestore
ขอให้สนุกกับ MongoDB
Enjoy this article?
Consider subscribing to our RSS feed!
ไม่มีความเห็น
ยังไม่มีความเห็น