การจำลองแบบ MongoDB: คู่มือฉบับสมบูรณ์ชุดการจำลองแบบทีละขั้นตอน

เผยแพร่แล้ว: 2020-02-27

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

และเพื่อให้อัตราของกระบวนการนั้นรวดเร็ว คุณจะต้องตรวจสอบให้แน่ใจว่าข้อมูลของคุณยังคงอยู่ในระดับสูง วิธีที่ยอดเยี่ยมในการตรวจสอบความพร้อมใช้งานของข้อมูลสูงคือการทำการจำลองแบบ การจำลองแบบยังช่วยในการสำรองข้อมูลและช่วยคุณประหยัดจากการสูญหายของข้อมูล

ในบทความนี้ คุณจะค้นพบว่าการจำลองแบบใน MongoDB คืออะไร มันทำงานอย่างไร และคุณจะทำได้อย่างไร คุณจะพบข้อดีของการจำลองแบบใน MongoDB และหากคุณพบข้อผิดพลาดใดๆ ขณะดำเนินการงานนี้ คุณจะแก้ไขได้อย่างไร

มาเริ่มกันเลย.

สารบัญ

การจำลองแบบคืออะไร?

ขณะใช้เซิร์ฟเวอร์ คุณจะต้องซิงโครไนซ์ข้อมูลของคุณบนเซิร์ฟเวอร์ MongoDB หลายเซิร์ฟเวอร์ ขั้นตอนการจำลองแบบจะช่วยคุณในเรื่องนี้ ช่วยให้มั่นใจได้ว่าคุณมีข้อมูลเดียวกันที่จัดเก็บไว้ในเซิร์ฟเวอร์ต่างๆ

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

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

คุณมีตัวเลือกในการอุทิศเซิร์ฟเวอร์ทั้งหมดให้กับการรายงาน การสำรองข้อมูล หรือการกู้คืนจากความเสียหาย

มีข้อดีมากมายในการจำลองแบบใน MongoDB ลองหาพวกเขาออก

ประโยชน์ของการจำลองแบบ

นี่คือสาเหตุบางประการที่ทำให้การจำลองแบบเป็นแนวปฏิบัติที่แพร่หลาย:

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

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

วิธีการทำงานของการจำลองแบบ MongoDB

สำหรับการจำลอง คุณจะต้องใช้ชุดแบบจำลอง MongoDB กลุ่มของอินสแตนซ์ Mongod ที่โฮสต์ข้อมูลเดียวกันเรียกว่าชุดเรพพลิกา ชุดแบบจำลองประกอบด้วยโหนดหลักหนึ่งโหนด โหนดหลักได้รับการดำเนินการเขียนทั้งหมด

ชุดแบบจำลองมีโหนดหลักเพียงโหนดเดียว อินสแตนซ์อื่นๆ ใช้ฟังก์ชันจากโหนดหลักของชุด รวมถึงโหนดรอง ด้วยวิธีนี้ พวกเขาทั้งหมดมีชุดข้อมูลเดียวกัน นี่คือวิธีการทำงานของชุดแบบจำลอง MongoDB:

  • ชุดแบบจำลองมีอย่างน้อย 3 โหนด
  • โหนดหนึ่งของชุดเรพพลิกาคือโหนดหลัก โหนดอื่นๆ ทั้งหมดที่อยู่ในกลุ่มเป็นโหนดรอง
  • ในชุดเรพพลิกา ข้อมูลจะจำลองจากโหนดหลักไปยังโหนดรอง
  • หากเกิดเฟลโอเวอร์โดยอัตโนมัติ (หรือระหว่างการบำรุงรักษา) การเลือกตั้งหลักจะเกิดขึ้น จากนั้นโหนดจะเลือกหลักใหม่

ตอนนี้เราได้พูดถึงแนวคิดพื้นฐานของการจำลองแบบใน MongoDB แล้ว เราสามารถเริ่มต้นด้วยกระบวนการของมัน

ขั้นตอนที่ 1: เพิ่มสมาชิกคนแรก

คุณทราบแล้วว่าในการดำเนินการจำลองแบบ คุณจะต้องมีชุดแบบจำลอง ดังนั้น ขั้นตอนแรกของการจำลองแบบใน MongoDB คือการสร้างชุดแบบจำลองของอินสแตนซ์ สมมติว่าคุณมีเซิร์ฟเวอร์สามเครื่อง ได้แก่ Server X, Server Y และ Server Z ในสามเครื่องนี้ Server X เป็นเซิร์ฟเวอร์หลัก และ Server X และ Y เป็นเซิร์ฟเวอร์รอง

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

จากนั้น คุณควรตรวจสอบให้แน่ใจว่าอินสแตนซ์ทั้งหมดสามารถเชื่อมต่อได้ ออกคำสั่งที่กำหนดจาก Server X:

mongo –host ServerY –พอร์ต 27017

mongo –host ServerZ –พอร์ต 27017

หลังจากออกจากเซิร์ฟเวอร์ X แล้ว ให้ออกจากเซิร์ฟเวอร์อื่นที่เหลือ ตอนนี้เริ่มอินสแตนซ์แรกโดยใช้ตัวเลือก replSet ตัวเลือก replSet ช่วยให้คุณมีคอลเลกชันของเซิร์ฟเวอร์ทั้งหมดที่จะมีส่วนร่วมในกระบวนการนี้

mongo –replSet “ReplicaA”

ที่นี่ ReplicaA คือชื่อของชุดเรพลิกา คุณสามารถเลือกชื่อใดก็ได้ที่คุณต้องการ แต่เราจะใช้คำนี้สำหรับตัวอย่างนี้ คุณจะต้องออกคำสั่ง rs.initiate() สำหรับการเริ่มต้นชุดเรพลิกา หลังจากที่คุณได้เพิ่มเซิร์ฟเวอร์หนึ่งเครื่องไปยังชุดเรพลิกา หลังจากนั้น คุณควรตรวจสอบชุดแบบจำลองของคุณ

โดยออกคำสั่ง rs.conf() ขั้นตอนนี้จะช่วยคุณในการสร้างความมั่นใจว่าแบบจำลองของคุณได้รับการตั้งค่าอย่างเหมาะสมและไม่มีปัญหาใดๆ

อ่าน: คำถามและคำตอบสัมภาษณ์ MongoDB

ขั้นตอนที่ 2: เพิ่มเซิร์ฟเวอร์รอง

หลังจากเพิ่มเซิร์ฟเวอร์หลักแล้ว เราสามารถมุ่งเน้นไปที่การเพิ่มเซิร์ฟเวอร์ที่สองได้ คุณสามารถใช้คำสั่ง rs.add เพื่อจุดประสงค์นี้ คุณต้องป้อนชื่อเซิร์ฟเวอร์รองที่คุณต้องการเพิ่มในคำสั่งนี้ มันจะเพิ่มโดยอัตโนมัติ

ในตัวอย่างของเรา เรามี Server X, Server Y และ Server Z จากสามเซิร์ฟเวอร์นั้น Server X เป็นเซิร์ฟเวอร์หลักในชุดเรพพลิกา เราจำเป็นต้องเพิ่มเซิร์ฟเวอร์ที่เหลือเป็นเซิร์ฟเวอร์สำรอง และในการทำเช่นนั้น เราจะออกคำสั่งต่อไปนี้:

rs.add("เซิร์ฟเวอร์ Y")

rs.add("ServerZ")

และนั่นแหล่ะ ตอนนี้ คุณได้เพิ่มสองวินาทีในชุดเรพลิกาของคุณสำเร็จแล้ว

ขั้นตอนที่ 3: การกำหนดค่าใหม่ (หรือการลบ)

การสร้างและเพิ่มเซิร์ฟเวอร์เป็นเพียงด้านเดียวของเหรียญ คุณอาจต้องลบเซิร์ฟเวอร์ออกจากกลุ่มการกำหนดค่าด้วย เพื่อจุดประสงค์นั้น คุณต้องใช้คำสั่ง rs.remove

ก่อนที่คุณจะลบเซิร์ฟเวอร์ คุณจะต้องปิดเครื่องก่อน ใช้คำสั่ง db.shutdownserver จาก mongo shell ของคุณเพื่อปิดเซิร์ฟเวอร์ที่จำเป็น หลังจากนั้นให้เชื่อมต่อกับหลักและใช้ rs.remove เพื่อลบเซิร์ฟเวอร์ที่คุณต้องการลบ คำสั่งนี้จะลบเซิร์ฟเวอร์ที่จำเป็นออกจากชุดเรพพลิกา

ดังนั้น หากคุณมี Server X, Server Y และ Server Z ในชุดเรพพลิกา ซึ่งคุณจะต้องกำจัด Server Z ออกไป คุณจะต้องใช้คำสั่งต่อไปนี้:

rs.remove("ServerZ")

วิธีแก้ไขข้อผิดพลาดชุดแบบจำลอง

ขณะทำการจำลองแบบใน MongoDB คุณอาจพบข้อผิดพลาดบางอย่าง เพื่อแก้ไขข้อผิดพลาดเหล่านั้น คุณควรใช้วิธีต่อไปนี้:

  • ขั้นแรก ตรวจสอบให้แน่ใจว่าได้เชื่อมต่ออินสแตนซ์ mongo ทั้งหมดแล้ว ดังนั้น หากคุณมีสามเซิร์ฟเวอร์ คือ Server X, Server Y และ Server Z และในสามเซิร์ฟเวอร์นั้น Server X เป็นเซิร์ฟเวอร์หลัก คุณจะต้องออกคำสั่งต่อไปนี้:

mongo -host ServerY -พอร์ต 27017

mongo -host ServerZ -พอร์ต 27017

การเรียกใช้สองคำสั่งข้างต้นจะช่วยให้คุณมั่นใจได้ว่ามีการเชื่อมต่อกัน

ตอนนี้ รันคำสั่งสถานะ ซึ่งก็คือ rs.status คำสั่ง rs.status ให้สถานะของชุดเรพลิกาของคุณ สมาชิกของชุดเรพลิกาส่งข้อความถึงกัน เราเรียกข้อความเหล่านี้ว่า 'การเต้นของหัวใจ' เราเรียกมันว่าการเต้นของหัวใจเพราะข้อความเหล่านี้แสดงว่าสมาชิกกำลังทำงาน (เช่น ยังมีชีวิตอยู่)

คำสั่ง rs.status จะตรวจสอบข้อความเหล่านี้และบอกคุณว่ามีปัญหาใดๆ เกิดขึ้นกับสมาชิกของชุดเรพลิกาหรือไม่

  • คุณสามารถตรวจสอบ oplog ใน MongoDB oplog จะเก็บประวัติการเขียนที่คุณได้ทำไว้ในฐานข้อมูลของคุณ MongoDB ใช้ความช่วยเหลือของ Oplog ในการจำลองการเขียนไปยังสมาชิกคนอื่น ๆ ในชุดแบบจำลองของคุณ
  • คุณสามารถตรวจสอบ Oplog ได้โดยใช้คำสั่ง rs.printReplicationinfo หลังจากเชื่อมต่อกับสมาชิกที่ต้องการ คำสั่ง rs.printReplicationinfo จะแสดงขนาดของ Oplog และขีดจำกัดของการทำธุรกรรมจนกว่าจะเต็ม

และนั่นแหล่ะ ตอนนี้ คุณรู้วิธีแก้ไขปัญหาเกี่ยวกับชุดเรพพลิกา MongoDB แล้ว ด้วยความรู้นี้ คุณสามารถเริ่มต้นการจำลองแบบใน MongoDB โดยไม่ต้องพบกับความยุ่งยากใดๆ

ความคิดสุดท้าย

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

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ MongoDB และฟังก์ชันต่างๆ ที่มีอยู่ โปรดไปที่บล็อกของเรา คุณจะพบบทความที่มีประโยชน์มากมายที่จะช่วยคุณเพิ่มพูนความรู้ในหัวข้อนี้

หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับ Big Data โปรดดูที่ PG Diploma in Software Development Specialization in Big Data program ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 7 กรณี ครอบคลุมภาษาและเครื่องมือในการเขียนโปรแกรม 14 รายการ เวิร์กช็อป ความช่วยเหลือด้านการเรียนรู้และจัดหางานอย่างเข้มงวดมากกว่า 400 ชั่วโมงกับบริษัทชั้นนำ

เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

พัฒนาตัวเองและเตรียมพร้อมสำหรับอนาคต

การเรียนรู้มากกว่า 400 ชั่วโมง 14 ภาษาและเครื่องมือ สถานะศิษย์เก่า IIIT-B
โปรแกรมประกาศนียบัตรขั้นสูงด้าน Big Data จาก IIIT Bangalore