Σχετικά με το Replica Set
Προαπαιτούμενα
Σχεδιάστε το σετ Replica
Οδηγίες ανάπτυξης
συμπέρασμα
Από τη σύλληψή της το 2009, η MongoDB ηγείται της βιομηχανίας NoSQL. Μία από τις βασικές έννοιες του MongoDB είναι το Replica Set, οπότε πριν εργαστείτε με αυτό, ας εξετάσουμε πρώτα την ιδέα.
Σχετικά με το Replica Set
Το απλούστερο μοντέλο επικοινωνίας που χρησιμοποιείται για την αναπαραγωγή βάσεων δεδομένων είναι η αρχιτεκτονική Master-Slave. Όπως υποδηλώνει το όνομά του αυτό το μοντέλο έχει 2 ρόλους που είναι διασκορπισμένοι σε ένα μοναδικό κύριο και πολλά slaves, ο ρόλος του master είναι να επεξεργάζεται τις λειτουργίες ανάγνωσης και εγγραφής που γίνονται από τους πελάτες και οι slaves αντιμετωπίζονται ως αντίγραφο του master.
Το πιο σημαντικό πλεονέκτημα αυτού του μοντέλου είναι ότι η απόδοση του κύριου δεν διακυβεύεται από τις λειτουργίες δημιουργίας αντιγράφων ασφαλείας, οι λειτουργίες δημιουργίας αντιγράφων ασφαλείας γίνονται με ασύγχρονο τρόπο και αυτό μπορεί να γίνει σοβαρό πρόβλημα όταν ένας κύριος κόμβος αποτύχει. Οι υποτελείς κόμβοι είναι μόνο για ανάγνωση και πρέπει να προωθηθούν χειροκίνητα στον κύριο κόμβο, επομένως σε αυτό το διάστημα υπάρχει η πιθανότητα απώλειας δεδομένων.
Μια επιλογή για την επίλυση του προβλήματος της διαθεσιμότητας είναι να υπάρχουν περισσότερα από ένα master στην αρχιτεκτονική, αλλά αυτό μπορεί να οδηγήσει σε ένα άλλο πρόβλημα στη συνέπεια των δεδομένων μεταξύ αυτών των παρουσιών και στην πρόσθετη πολυπλοκότητα της διαμόρφωσης.
Τώρα δεδομένου του πλαισίου μπορούμε να παρουσιάσουμε την τεχνολογία Replica Set της MongoDB. Το Replica Set είναι το όνομα της αρχιτεκτονικής Master-Slave που έχει αυτόματη ανακατεύθυνση, οπότε τη στιγμή που ένας κύριος primaryκόμβος (που τώρα ονομάζεται ) δεν λειτουργεί σωστά, electionθα ενεργοποιείται και ένας νέος πρωτεύων κόμβος θα εκλέγεται από τους υπόλοιπους υποτελείς ( αναφέρεται τώρα ως secondaries).
Πρωτεύων κόμβος
Ο πρωτεύων κόμβος είναι ο μόνος που εκτελεί λειτουργίες εγγραφής, από προεπιλογή οι λειτουργίες ανάγνωσης αντιμετωπίζονται επίσης από τον πρωτεύοντα αλλά αυτή η συμπεριφορά μπορεί να αλλάξει αργότερα.
Οι πράξεις καταγράφονται στο oplog(ημερολόγιο λειτουργιών), και στη συνέχεια οι δευτερεύοντες κόμβοι ενημερώνουν το περιεχόμενό τους ασύγχρονα με βάση το περιεχόμενο τουoplog
Σημείωση: oplogείναι μια συλλογή με ανώτατο όριο, αυτό σημαίνει ότι η συλλογή έχει ένα όριο, καθώς local.oplog.rsμπορείτε να ελέγξετε το περιεχόμενο αυτής της συλλογής μέσα σε ένα κέλυφος mongo σε οποιοδήποτε μέλος συνόλου.
Δευτερεύων κόμβος
Εκτός από το ότι είναι αυτοί που κάνουν ένα σωστό αντίγραφο ασφαλείας της βάσης δεδομένων, ένας δευτερεύων κόμβος έχει αυτούς τους ρόλους:
- Μπορεί να δεχτεί λειτουργίες ανάγνωσης εάν χρειάζεται.
- Μπορεί να ενεργοποιήσει μια εκλογή εάν αποτύχει ένας κύριος κόμβος.
- Μπορεί να ψηφίσει στις εκλογές.
- Μπορεί να γίνει ο νέος πρωτοβάθμιος αν χρειαστεί.
Χάρη σε αυτά τα χαρακτηριστικά μπορούμε να έχουμε διαφορετικούς τύπους δευτερευόντων κόμβων:
- Προτεραιότητα 0 : Αυτοί οι κόμβοι δεν μπορούν να γίνουν α
primaryκαι δεν μπορούν να ενεργοποιήσουν μια εκλογή, παρόλα αυτά μπορούν να ψηφίσουν στις εκλογές, να έχουν πλήρες αντίγραφο και να δέχονται λειτουργίες ανάγνωσης. Αυτά μπορεί να είναι χρήσιμα στην ανάπτυξη πολλών κέντρων δεδομένων.
- Κρυφό : Αυτά είναι
Priority 0μέλη, αλλά επιπλέον δεν μπορούν να επεξεργαστούν λειτουργίες ανάγνωσης. Μπορούν να ψηφίσουν αν χρειαστεί. Προτιμώμενες εργασίες για αυτά τα μέλη είναι η αναφορά και η δημιουργία αντιγράφων ασφαλείας.
- Καθυστερημένο : Αυτοί οι κόμβοι είναι υπεύθυνοι για τα "ιστορικά δεδομένα" καθυστερώντας με κάποια μονάδα στο χρόνο. Ένα καθυστερημένο μέλος πρέπει να είναι
priority 0κόμβος και συνιστάται να είναι και hiddenμέλος.
Προαπαιτούμενα
- Η διαθεσιμότητα για εκτέλεση τουλάχιστον 3 παρουσιών του Ubuntu 16.04 x64 με το ίδιο μέγεθος διακομιστή.
Σχεδιάστε το σετ Replica
Πριν από την ανάπτυξη μιας υποδομής, είναι σημαντικό να τη σχεδιάσετε, και υπάρχουν σημεία που πρέπει να λάβετε υπόψη σε αυτόν τον σχεδιασμό.
Επιλογή αριθμού μελών
Λάβετε υπόψη ότι ο ελάχιστος αριθμός στοιχείων για τη δημιουργία ενός συνόλου Replica είναι 3. Μπορείτε να αναμίξετε τους τρεις τύπους κόμβων με τουλάχιστον έναν κύριο και έναν δευτερεύοντα κόμβο.
Σε αυτόν τον οδηγό αναπτύσσουμε 3 μέλη, ένα πρωτεύον και δύο τυπικά δευτερεύοντα.
Σημείωση: Συνιστάται ο μέγιστος αριθμός 7 μελών με δικαίωμα ψήφου με συνδυασμό διαιτητών και δευτερευόντων μελών.
Επιλέξτε ένα όνομα
Το όνομα είναι απλώς για αναφορά, αλλά το χρησιμοποιείτε στη διαμόρφωση του συνόλου. Λάβετε υπόψη ότι μπορείτε να έχετε περισσότερα από ένα σετ Replica στο περιβάλλον παραγωγής σας, επομένως μην παραμελείτε το όνομα του σετ σας.
Αυτό το σεμινάριο ενθαρρύνει τον χρήστη να επιλέξει το όνομα του συνόλου.
Κατανομή των μελών σε διαφορετικά κέντρα δεδομένων
Αυτό το σεμινάριο προτείνει την ανάπτυξη στο ίδιο κέντρο δεδομένων, ώστε να αποφύγετε προβλήματα επικοινωνίας.
Σημείωση: Σε περίπτωση ανάπτυξης σε διαφορετικά κέντρα δεδομένων, συνιστάται να καλύπτετε τους κόμβους σας με ένα VPN
Οδηγίες ανάπτυξης
Βήμα 1: Αναπτύξτε τους ελάχιστους κόμβους για την υποδομή σας
Εκκίνηση 3 κόμβων του Ubuntu 16.04 x64. στην ίδια περιοχή από την πύλη πελατών σας, εάν είναι δυνατόν. Μην ξεχάσετε να τα ονομάσετε ανάλογα με τον τύπο του έργου με το οποίο ασχολείστε και φροντίστε να έχετε το ίδιο μέγεθος διακομιστή σε όλους αυτούς τους κόμβους.
Αφού αναπτύξετε τους 3 κόμβους σας, θα πρέπει να είστε σίγουροι ότι κάθε κόμβος μπορεί να συνομιλήσει με τους υπόλοιπους. Πρέπει να ssh σε δύο κόμβους και να προσεγγίσετε τους άλλους χρησιμοποιώντας ping -c 4 EXAMPLE_IP. Αλλαγή EXAMPLE_IPστις πραγματικές IP των κόμβων σας.
Εδώ μπορείτε να δείτε ένα παράδειγμα επιτυχημένης επικοινωνίας μεταξύ δύο κόμβων.
root@foo_node:~# ping -c 4 EXAMPLE_IP
PING EXAMPLE_IP (EXAMPLE_IP) 56(84) bytes of data.
64 bytes from EXAMPLE_IP: icmp_seq=1 ttl=59 time=0.594 ms
64 bytes from EXAMPLE_IP: icmp_seq=2 ttl=59 time=0.640 ms
64 bytes from EXAMPLE_IP: icmp_seq=3 ttl=59 time=0.477 ms
64 bytes from EXAMPLE_IP: icmp_seq=4 ttl=59 time=0.551 ms
--- EXAMPLE_IP ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3021ms
rtt min/avg/max/mdev = 0.477/0.565/0.640/0.064 ms
Βήμα 2: Εγκαταστήστε το MongoDB σε κάθε κόμβο της υποδομής σας
Γενικά μπορείτε να χρησιμοποιήσετε το πακέτο MongoDB του Ubuntu, αλλά είναι καλύτερο να χρησιμοποιήσετε το επίσημο αποθετήριο της κοινότητας γιατί είναι πάντα ενημερωμένο. Αυτό το repo περιέχει αυτά τα πακέτα:
- mongodb-org , το ομαδικό πακέτο που περικλείει τα τέσσερα συστατικά.
- mongodb-org-server , περιέχει τον
mongodδαίμονα (κύρια διαδικασία που χειρίζεται αιτήματα δεδομένων).
- mongodb-org-mongos , περιέχει τον
mongosδαίμονα (υπηρεσία δρομολόγησης για κοινόχρηστες αναπτύξεις).
- mongodb-org-shell , αυτή είναι η
mongo shellδιεπαφή JavaScript.
- mongodb-org-tools , ορισμένα εργαλεία για δραστηριότητες διαχείρισης.
Προχωρήστε στην εγκατάσταση των πακέτων.
Εισαγάγετε το δημόσιο κλειδί στο σύστημα διαχείρισης πακέτων.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Δημιουργήστε το αρχείο λίστας για το MongoDB '/etc/apt/sources.list.d/mongodb-org-3.4.list'.
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Ενημερώστε τη βάση δεδομένων του πακέτου.
sudo apt-get update
Εγκαταστήστε το μεταπακέτο MongoDB.
sudo apt-get install -y mongodb-org
Ξεκινήστε την υπηρεσία MongoDB.
sudo service mongod start
Τώρα μπορείτε να ανοίξετε το mongo shellσε οποιαδήποτε περίοδο λειτουργίας bash. Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε την mongoεντολή. Θα σας υποδεχτεί κάτι παρόμοιο.
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
*Some extra logs are cut by the way*
>
Μην ξεχάσετε να κλείσετε την υπηρεσία με sudo service mongod stop, γιατί αργότερα θα ξεκινήσουμε mongodξανά με κάποιες παραμέτρους. Επαναλάβετε αυτή τη διαδικασία και στους 3 κόμβους του σετ.
Βήμα 3: Διαμορφώστε το αρχείο κλειδιού πρόσβασης
Η χρήση ενός αρχείου κλειδιού επιβάλλει δύο έννοιες στη διαχείριση Replica Set. Το πρώτο είναι Internal Authentication. Από προεπιλογή, μπορείτε να ξεκινήσετε μια mongo shellπερίοδο λειτουργίας χωρίς να χρησιμοποιήσετε χρήστη και αυτή η συνεδρία θα έχει τον πλήρη έλεγχο της βάσης δεδομένων, αλλά όταν χρησιμοποιείτε ένα αρχείο κλειδιού για έλεγχο ταυτότητας, η mongo shellσυνεδρία σας φτάνει σε μια κατάσταση που ονομάζεται localhost exception. Αυτή η κατάσταση σάς επιτρέπει να δημιουργήσετε μόνο τον χρήστη διαχειριστή και το σύνολο Replica. Η δεύτερη έννοια είναι Role-Based Access Control, ή με άλλα λόγια εξουσιοδότηση. Αυτό επιβάλλεται για να διέπει τα επίπεδα διαχείρισης στο σύνολο Replica.
Δημιουργήστε το αρχείο κλειδιού σας
Το αρχείο κλειδιού είναι ο κωδικός πρόσβασης που θα χρησιμοποιηθεί στο σύνολο, αυτός ο κωδικός πρόσβασης πρέπει να είναι ο ίδιος σε όλα τα μέλη του συνόλου. Για να αυξήσετε την ασφάλεια, είναι σημαντικό να χρησιμοποιήσετε ένα τυχαίο κλειδί με το εργαλείο της επιλογής σας.
Το περιεχόμενο πρέπει να είναι από 6 έως 1064 χαρακτήρες. Επίσης, πρέπει να ορίσετε την read onlyάδεια για το αρχείο κλειδιού.
chmod 400 PATH_OF_YOUR_KEYFILE
Τοποθετήστε το αρχείο κλειδιού σε κάθε μέλος σετ
Τώρα αντιγράψτε το αρχείο κλειδιού σας σε κάθε μέλος συνόλου, χρησιμοποιήστε έναν συνεπή φάκελο για μελλοντική αναφορά και μην τον αποθηκεύσετε σε αφαιρούμενο μέσο.
Χρησιμοποιήστε επίσης έναν φάκελο για το αρχείο που mongodέχει πρόσβαση.
Επιβολή χρησιμοποιώντας το αρχείο κλειδιού στο σύνολο Replica
Σε αυτό το βήμα πρέπει να ξεκινήσουμε το mongod daemon μέλος σε κάθε σύνολο . Υπάρχουν δύο τρόποι για να ξεκινήσετε τη mongodδιαδικασία: χρησιμοποιώντας ένα αρχείο διαμόρφωσης ή χρησιμοποιώντας τη γραμμή εντολών. Και οι δύο είναι αρκετά εύκολες μέθοδοι, αλλά για λόγους απλότητας, αυτό το σεμινάριο χρησιμοποιεί την έκδοση της γραμμής εντολών.
Διαμόρφωση γραμμής εντολών
Χρησιμοποιήστε το όνομα που επιλέξατε νωρίτερα σε αυτήν την εντολή.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
Από προεπιλογή mongodδεν εκτελείται ως δαίμονας. Θα χρειαστεί να χρησιμοποιήσετε την --forkπαράμετρο ή να χρησιμοποιήσετε το upstartγια να την εκτελέσετε πλήρως ως δαίμονας. Σε αυτό το σεμινάριο δεν ενθαρρύνουμε την εκτέλεση mongodως δαίμονας, ώστε να μπορείτε να δείτε τα αρχεία καταγραφής στο τερματικό σας απευθείας.
Σημείωση: Πληκτρολογήστε προσεκτικά το όνομα του σετ Replica γιατί μόλις δημιουργηθεί δεν μπορείτε να το αλλάξετε.
Βήμα 4: Συνδεθείτε στη διεπαφή localhost από ένα από τα μέλη του συνόλου
Σημείωση: Εάν εκτελείτε mongodως διαδικασία χωρίς δαίμονα, τότε θα πρέπει να ανοίξετε μια άλλη σύνδεση ssh για να συνεχίσετε να εργάζεστε.
Πρέπει να χρησιμοποιήσετε την mongoεντολή για να ανοίξετε το mongo shell. Αυτό μπορεί να γίνει σε οποιοδήποτε μέλος του σετ.
Αυτή τη στιγμή βρισκόμαστε σε μια κατάσταση που ονομάζεται localhost exception. Όταν χρησιμοποιείται ένα αρχείο κλειδιού για τη ρύθμιση της mongodδιαδικασίας, είστε υποχρεωμένοι να δημιουργήσετε έναν διαχειριστή βάσης δεδομένων για να μπορέσετε να εφαρμόσετε λειτουργίες ανάγνωσης-εγγραφής, αλλά θα το εξετάσουμε αργότερα.
Βήμα 5: Εκκίνηση του σετ Replica
Αυτό είναι ένα ευαίσθητο μέρος, χρησιμοποιούμε την εντολή rs.initiate()μέσα στο mongo shellΒήμα 4. Πριν χρησιμοποιήσουμε αυτήν την εντολή, ας την εξετάσουμε.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
Το πρώτο _idπεδίο είναι συμβολοσειρά και πρέπει να ταιριάζει με --replSetαυτό που περάσατε πριν στο mongod. Επίσης, κάθε τιμή του hostπρέπει να είναι είτε η ip είτε το όνομα τομέα κάθε μέλους του συνόλου Replica. Μην ξεχάσετε να προσαρτήσετε τη θύρα που χρησιμοποιεί η παρουσία mongo σε κάθε μέλος.
Τώρα είναι ώρα να εκτελέσετε την εντολή με τα δεδομένα σας, αυτό θα ενεργοποιήσει ένα election, και μετά θα εκλεγεί αυτόματα ένα πρωτεύον.
Εδώ πρέπει να σημειώσετε ότι ο κέρσορας του κελύφους έχει αλλάξει σε YOUR_SET_NAME:PRIMARY>ή YOUR_SET_NAME:SECONDARY. Αυτό σημαίνει ότι η δημιουργία ενός σετ ήταν μια επιτυχία.
Για να συνεχίσετε να εργάζεστε, πρέπει να βρείτε το primary, εάν φυσικά δεν είστε σε αυτό. Χρησιμοποιήστε την rs.status()εντολή για να εμφανίσετε τις πληροφορίες του συνόλου Replica και εντοπίστε το primary. Ψάχνετε για το ακίνητο "stateStr" : "PRIMARY".
Βήμα 6: Δημιουργία του διαχειριστή
Αφού εντοπίσετε το primary, πληκτρολογήστε mongo shellκαι εκτελέστε την επόμενη εντολή χρησιμοποιώντας τα δεδομένα σας.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Το admin = db.getSiblingDB("admin")μέρος μας επιτρέπει να γράψουμε adminαπό μια διαφορετική βάση δεδομένων. Αυτό δημιουργεί ένα ψευδώνυμο που ονομάζεται admin, ώστε να μπορούμε να εκτελέσουμε εντολές χρησιμοποιώντας το αντί αυτού.
Εάν η λειτουργία είναι επιτυχής, θα λάβετε μια ειδοποίηση ότι ο χρήστης έχει προστεθεί.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Σε αυτό το σημείο, έχουμε μόνο έναν διαχειριστή για όλους τους διακομιστές, αλλά η ύπαρξη ενός σετ Replica μας αναγκάζει να έχουμε έναν χρήστη με τον clusterAdminρόλο. Θα δημιουργήσουμε έναν άλλο χρήστη μόνο με αυτόν τον ρόλο για να διαχωρίσουμε τις ανησυχίες.
Βήμα 7: Έλεγχος ταυτότητας ως διαχειριστής
Έχουμε φτάσει στο όριο του localhost exception, γι' αυτό πρέπει να αλλάξουμε τον έλεγχο ταυτότητας στον χρήστη που δημιουργήθηκε ένα βήμα πριν.
Μπορείτε να αλλάξετε τους χρήστες μέσα στο mongo shellμε τα εξής.
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Εάν δεν έχετε ήδη συνδεθεί με την mongo shellεντολή, χρησιμοποιήστε αυτήν την εντολή.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
Θα ειδοποιηθείτε για την αλλαγή χρήστη και μπορείτε να προχωρήσετε στο επόμενο βήμα.
Βήμα 8: Δημιουργία του κύριου συμπλέγματος
Ο clusterAdminρόλος δίνει στον χρήστη τον πλήρη έλεγχο του σετ Replica. Η δημιουργία του είναι τόσο εύκολη όσο η δημιουργία του χρήστη διαχειριστή.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Σημειώστε ότι αυτή τη φορά ο ρόλος αλλάζει σεclusterAdmin .
Βήμα 9: Εισαγωγή δεδομένων στο σύνολο Replica
Αυτή τη στιγμή έχουμε 2 χρήστες διαχειριστή: ένας που έχει τον απόλυτο έλεγχο του διακομιστή και ένας άλλος που έχει πρόσβαση σε διαχειριστικές εργασίες σε επίπεδο συνόλου Replica. Ωστόσο, μας λείπει ένας χρήστης που έχει πρόσβαση για να "χρησιμοποιήσει" μια βάση δεδομένων, οπότε θα δημιουργήσουμε αυτόν τον χρήστη τώρα.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Παρατηρήστε ότι αυτή τη φορά αλλάζουμε το dbτμήμα, εκεί βάζουμε τη βάση δεδομένων προσβάσιμη στον χρήστη, σε αυτήν την περίπτωση χρησιμοποιούμε μια βάση δεδομένων με το όνομα cars.
Η βάση δεδομένων δεν έχει δημιουργηθεί ακόμα. Για να το κάνετε αυτό, θα πρέπει να πληκτρολογήσετε μερικές εντολές για να το δημιουργήσετε σιωπηρά. Μετάβαση στη carsβάση δεδομένων.
use cars
Θα λάβετε μια ειδοποίηση: switched to db cars.
Η βάση δεδομένων δεν έχει ακόμη δημιουργηθεί, για να γίνει αυτό πρέπει να γράψετε κάτι σε αυτήν. Χρησιμοποιούμε το ακόλουθο παράδειγμα.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Αυτή τη φορά θα ειδοποιηθείτε με WriteResult({ "nInserted" : 1 }).
Εάν θέλετε, μπορείτε να ανακτήσετε όλα τα αντικείμενα στη βάση δεδομένων, με τη find()μέθοδο:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Σημειώστε ότι _idθα είναι διαφορετικό στην έξοδο σας, αλλά τα άλλα δεδομένα θα πρέπει να είναι τα ίδια. Εάν δοθεί αρκετός χρόνος, αυτά τα δεδομένα θα αναπαραχθούν στα άλλα μέλη.
συμπέρασμα
Η δημιουργία ενός σετ αντιγράφου μπορεί να είναι προκλητική στην αρχή, επειδή υπάρχουν πολλές πληροφορίες που πρέπει να καταλάβετε, αλλά μόλις πάρετε την ιδέα πίσω από αυτό, μπορείτε να το αναπτύξετε αστραπιαία, οπότε μην τα παρατάτε αν δεν μπορείτε να το καταλάβετε την πρώτη φορά. Λάβετε υπόψη ότι το σύνολο Replica είναι σημαντικό στη διαχείριση του MongoDB, επειδή ανοίγει τη δυνατότητα προσθήκης προηγμένων λειτουργιών όπως το Load Balancing.