การจำลองแบบ MongoDB: คู่มือฉบับสมบูรณ์ชุดการจำลองแบบทีละขั้นตอน
เผยแพร่แล้ว: 2020-02-27MongoDB มีหลายหน้าที่ และการจำลองแบบเป็นหน้าที่ที่โดดเด่นในหมู่พวกเขา มีข้อดีหลายประการในการจำลองแบบ ด้วย 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 สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว