Latest web development tutorials
×

MongoDB หลักสูตร

MongoDB หลักสูตร NoSQL แนะนำโดยย่อ MongoDB แนะนำโดยย่อ Window ติดตั้ง MongoDB Linux ติดตั้ง MongoDB MongoDB การแปลความหมายของแนวคิด MongoDB สัมพันธ์ MongoDB การสร้างฐานข้อมูล MongoDB ลบฐานข้อมูล MongoDB แทรกเอกสาร MongoDB การปรับปรุงเอกสาร MongoDB การลบเอกสาร MongoDB เอกสารแบบสอบถาม MongoDB ผู้ประกอบการที่มีเงื่อนไข MongoDB $type ผู้ประกอบการ MongoDB Limit & Skip MongoDB ลำดับ MongoDB ดัชนี MongoDB การรวมตัว MongoDB สำเนา MongoDB ชิ้น MongoDB สำรองและกู้คืน MongoDB หน้าจอ MongoDB Java MongoDB PHP กระจาย MongoDB PHP MongoDB PHP7

MongoDB การสอนที่ทันสมัย

MongoDB ความสัมพันธ์ MongoDB อ้างอิงฐานข้อมูล MongoDB ครอบคลุมแบบสอบถามดัชนี MongoDB การวิเคราะห์แบบสอบถาม MongoDB การดำเนินงานของอะตอม MongoDB การจัดทำดัชนีขั้นสูง MongoDB ข้อ จำกัด ของดัชนี MongoDB ObjectId MongoDB Map Reduce MongoDB ค้นหาข้อความเต็ม MongoDB นิพจน์ปกติ MongoDB เครื่องมือการจัดการ MongoDB GridFS MongoDB ชุดถาวร MongoDB การเจริญเติบโตอัตโนมัติ

MongoDB ชิ้น

ชิ้น

มีอีกกลุ่มคือ MongoDB ภายในเทคโนโลยีหั่นเป็นจำนวนมากของข้อมูลที่จะตอบสนองความต้องการที่เพิ่มขึ้นสำหรับ MongoDB

เมื่อ MongoDB ในการจัดเก็บข้อมูลจำนวนมหาศาลที่เครื่องอาจจะไม่เพียงพอที่จะเก็บข้อมูลอาจจะไม่เพียงพอที่จะให้เป็นที่ยอมรับในการอ่านและเขียนผ่าน ณ จุดนี้เราสามารถแยกข้อมูลบนเครื่องหลายเพื่อให้ระบบฐานข้อมูลสามารถจัดเก็บและประมวลผลข้อมูลได้มากขึ้น


ทำไมชิ้น

  • คัดลอกทั้งหมดเขียนงานไปยังโหนดหลัก
  • ชะลอการข้อมูลที่สำคัญในการค้นหาต้นแบบ
  • ชุดสำเนาเดียวถูก จำกัด ไว้ที่ 12 โหนด
  • เมื่อปริมาณมากของการร้องขอจะปรากฏขึ้นเมื่อหน่วยความจำ
  • ปัญหาการขาดแคลนดิสก์ท้องถิ่น
  • การขยายตัวในแนวตั้งที่มีราคาแพง

MongoDB ชิ้น

รูปต่อไปนี้แสดงให้เห็นถึงการใช้งานของโครงสร้างคลัสเตอร์ชิ้นในการกระจาย MongoDB นี้:

ภาพด้านบนมีดังต่อไปนี้สามองค์ประกอบหลัก:

  • Shard:

    ใช้ในการเก็บข้อมูลบล็อกจริงสภาพแวดล้อมการผลิตที่เกิดขึ้นจริงมีบทบาทเซิร์ฟเวอร์สะเก็ดสามารถตั้งค่าเครื่องไม่กี่ relica ตั้งมุ่งมั่นที่จะป้องกันไม่ให้เป็นเจ้าภาพจุดเดียวของความล้มเหลว

  • การกำหนดค่าเซิร์ฟเวอร์:

    เช่น mongod ร้านค้าทั้งหมด ClusterMetadata รวมถึงข้อมูลที่ก้อน

  • เราเตอร์ค้นหา:

    ปลายด้านหน้าของเส้นทางโดยการเข้าถึงลูกค้าและกลุ่มทั้งลักษณะเช่นฐานข้อมูลเดียวการใช้งาน Front-end โปร่งใสสามารถใช้


ตัวอย่างของการกระจายตัว

Slice พอร์ตผ้ามีการกระจายเป็นดังนี้

Shard Server 1:27020
Shard Server 2:27021
Shard Server 3:27022
Shard Server 4:27023
Config Server :27100
Route Process:40000

ขั้นตอนที่หนึ่ง: เริ่ม Shard เซิร์ฟเวอร์

[root@100 /]# mkdir -p /www/mongoDB/shard/s0
[root@100 /]# mkdir -p /www/mongoDB/shard/s1
[root@100 /]# mkdir -p /www/mongoDB/shard/s2
[root@100 /]# mkdir -p /www/mongoDB/shard/s3
[root@100 /]# mkdir -p /www/mongoDB/shard/log
[root@100 /]# /usr/local/mongoDB/bin/mongod --port 27020 --dbpath=/www/mongoDB/shard/s0 --logpath=/www/mongoDB/shard/log/s0.log --logappend --fork
....
[root@100 /]# /usr/local/mongoDB/bin/mongod --port 27023 --dbpath=/www/mongoDB/shard/s3 --logpath=/www/mongoDB/shard/log/s3.log --logappend --fork

ขั้นตอนที่สอง: เริ่มต้นการกำหนดค่าเซิร์ฟเวอร์

[root@100 /]# mkdir -p /www/mongoDB/shard/config
[root@100 /]# /usr/local/mongoDB/bin/mongod --port 27100 --dbpath=/www/mongoDB/shard/config --logpath=/www/mongoDB/shard/log/config.log --logappend --fork

หมายเหตุ: ที่นี่เราสามารถเริ่มต้นเช่นบริการ MongoDB สามัญเป็นจุดเริ่มต้นไม่จำเป็นต้องเพิ่มพารามิเตอร์ -shardsvr และ configsvr เพราะบทบาทของสองตัวแปรเหล่านี้คือการเปลี่ยนพอร์ตเริ่มต้นเพื่อให้เราสามารถเป็นพอร์ตตัวเองกำหนด

ขั้นตอนที่สาม: เริ่มต้นกระบวนการเส้นทาง

/usr/local/mongoDB/bin/mongos --port 40000 --configdb localhost:27100 --fork --logpath=/www/mongoDB/shard/log/route.log --chunkSize 500

พารามิเตอร์เริ่มต้น mongos, chunksize นี้ถูกใช้เพื่อระบุขนาดของก้อนที่หน่วยเป็นล้านบาทขนาดเริ่มต้นคือ 200MB

ขั้นตอนที่สี่: กำหนดค่า sharding

ต่อไปเราจะใช้ MongoDB เชลล์เข้าสู่ระบบ mongos เพิ่มโหนด Shard

[root@100 shard]# /usr/local/mongoDB/bin/mongo admin --port 40000
MongoDB shell version: 2.0.7
connecting to: 127.0.0.1:40000/admin
mongos> db.runCommand({ addshard:"localhost:27020" })
{ "shardAdded" : "shard0000", "ok" : 1 }
......
mongos> db.runCommand({ addshard:"localhost:27029" })
{ "shardAdded" : "shard0009", "ok" : 1 }
mongos> db.runCommand({ enablesharding:"test" }) #设置分片存储的数据库
{ "ok" : 1 }
mongos> db.runCommand({ shardcollection: "test.log", key: { id:1,time:1}})
{ "collectionsharded" : "test.log", "ok" : 1 }

ขั้นตอนที่ห้า: ในรหัสโปรแกรมโดยไม่มีการเปลี่ยนแปลงมากการเชื่อมต่อโดยตรงสอดคล้องกับฐานข้อมูล Mongo ธรรมดาเป็นอินเตอร์เฟซการเข้าถึงฐานข้อมูลการเชื่อมต่อ 40,000