MongoDB Replication: Πώς να δημιουργήσετε MongoDB Σετ ρεπλίκας
⚡ Έξυπνη Σύνοψη
MongoDB Η αντιγραφή διατηρεί τα ίδια δεδομένα σε περισσότερα από ένα MongoDB διακομιστή, προστατεύοντας από βλάβες διακομιστή και ενεργοποιώντας την εξισορρόπηση φορτίου. Ομαδοποιημένο MongoDB Οι παρουσίες σχηματίζουν ένα σύνολο αντιγράφων με ένα κύριο μέλος που δέχεται εγγραφές και ένα δευτερεύον μέλος που χειρίζεται λειτουργίες ανάγνωσης και ανακατεύθυνση.
Τι είναι MongoDB Αντιγραφή;
Η αντιγραφή αναφέρεται ως η διαδικασία διασφάλισης ότι τα ίδια δεδομένα είναι διαθέσιμα σε περισσότερα από ένα MongoDB Διακομιστής. Αυτό απαιτείται μερικές φορές για την αύξηση της διαθεσιμότητας δεδομένων.
Διότι αν ο κύριος σας MongoDB Ο διακομιστής πέφτει για οποιοδήποτε λόγο, δεν θα υπάρχει πρόσβαση στα δεδομένα. Αλλά αν είχατε την αναπαραγωγή των δεδομένων σε άλλο διακομιστή σε τακτά χρονικά διαστήματα, θα μπορείτε να έχετε πρόσβαση στα δεδομένα από άλλο διακομιστή, ακόμη και αν ο κύριος διακομιστής αποτύχει.
Ένας άλλος σκοπός της αναπαραγωγής είναι η δυνατότητα εξισορρόπησης φορτίου. Εάν υπάρχουν πολλοί χρήστες που συνδέονται στο σύστημα, αντί να συνδέονται όλοι σε ένα σύστημα, οι χρήστες μπορούν να συνδεθούν σε πολλούς διακομιστές, ώστε να υπάρχει ίση κατανομή του φορτίου.
In MongoDB, πολλαπλά MongoDB Οι διακομιστές ομαδοποιούνται σε σύνολα που ονομάζονται σύνολα αντιγράφων. Το σύνολο αντιγράφων θα έχει έναν κύριο διακομιστή ο οποίος θα δέχεται όλες τις λειτουργίες εγγραφής από τους πελάτες. Όλες οι άλλες παρουσίες που προστίθενται στο σύνολο μετά από αυτό θα ονομάζονται δευτερεύουσες παρουσίες, οι οποίες μπορούν να χρησιμοποιηθούν κυρίως για όλες τις λειτουργίες ανάγνωσης.
Πώς να δημιουργήσετε αντίγραφο σετ MongoDB Προσθήκη του Πρώτου Μέλους χρησιμοποιώντας rs.initiate()
Όπως αναφέρθηκε στην προηγούμενη ενότητα, για να ενεργοποιήσουμε την αναπαραγωγή, πρέπει πρώτα να δημιουργήσουμε ένα σύνολο αντιγράφων MongoDB περιπτώσεις.
Ας υποθέσουμε ότι για το παράδειγμά μας, έχουμε 3 διακομιστές που ονομάζονται ServerA, ServerB και ServerC. Σε αυτήν τη διαμόρφωση, ο ServerA θα είναι ο κύριος διακομιστής μας και οι ServerB και ServerC θα είναι οι δευτερεύοντες διακομιστές μας. Το παρακάτω στιγμιότυπο οθόνης θα σας δώσει μια καλύτερη εικόνα.
Παρακάτω είναι τα βήματα που πρέπει να ακολουθήσετε για τη δημιουργία του MongoDB σετ ρεπλίκα μαζί με την προσθήκη του πρώτου μέλους στο σετ.
Βήμα 1) Βεβαιωθείτε ότι έχουν προστεθεί όλες οι παρουσίες του mongod.exe
Βεβαιωθείτε ότι όλες οι παρουσίες του mongod.exe που θα προστεθούν στο σύνολο αντιγράφων είναι εγκατεστημένες σε διαφορετικούς διακομιστές. Αυτό γίνεται για να διασφαλιστεί ότι ακόμη και αν ένας διακομιστής τεθεί εκτός λειτουργίας, οι άλλοι θα είναι διαθέσιμοι και, επομένως, άλλες παρουσίες του MongoDB θα είναι διαθέσιμο.
Βήμα 2) Όλες οι παρουσίες του mongo.exe συνδέονται μεταξύ τους
Βεβαιωθείτε ότι όλες οι παρουσίες mongo.exe μπορούν να συνδεθούν μεταξύ τους. Από τον ServerA, εκδώστε τις παρακάτω 2 εντολές.
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
Ομοίως, κάντε το ίδιο πράγμα από τους υπόλοιπους διακομιστές.
Βήμα 3) Ξεκινήστε την πρώτη παρουσία mongod.exe
Ξεκινήστε την πρώτη παρουσία mongod.exe με την επιλογή replSet. Αυτή η επιλογή παρέχει μια ομάδαping για όλους τους διακομιστές που θα αποτελούν μέρος αυτού του συνόλου αντιγράφων.
mongo --replSet "Replica1"
Όπου "Replica1" είναι το όνομα του συνόλου αντιγράφων σας. Μπορείτε να επιλέξετε οποιοδήποτε όνομα με νόημα για το όνομα του συνόλου των αντιγράφων σας.
Βήμα 4) Ο πρώτος διακομιστής προστίθεται στο σύνολο αντιγράφων
Τώρα που ο πρώτος διακομιστής προστίθεται στο σύνολο αντιγράφων, το επόμενο βήμα είναι να ξεκινήσει το σύνολο αντιγράφων εκδίδοντας την ακόλουθη εντολή rs.initiate().
Βήμα 5) Επαληθεύστε το σύνολο αντιγράφων
Επαληθεύστε το σύνολο αντιγράφων εκδίδοντας την εντολή rs.conf() για να βεβαιωθείτε ότι το σύνολο αντιγράφων έχει ρυθμιστεί σωστά.
Replica Set: Προσθήκη δευτερεύοντος χρησιμοποιώντας rs.add()
Οι δευτερεύοντες διακομιστές μπορούν να προστεθούν στο σύνολο αντιγράφων χρησιμοποιώντας απλώς την εντολή rs.add. Αυτή η εντολή παίρνει το όνομα των δευτερευόντων διακομιστών και προσθέτει τους διακομιστές στο σύνολο αναπαραγωγής.
Βήμα 1) Ας υποθέσουμε ότι έχετε τους ServerA, ServerB και ServerC, οι οποίοι πρέπει να αποτελούν μέρος του συνόλου αντιγράφων σας, και ο ServerA ορίζεται ως ο κύριος διακομιστής στο σύνολο αντιγράφων.
Για να προσθέσετε ServerB και ServerC στο σύνολο αντιγράφων, εκτελέστε τις εντολές:
rs.add("ServerB") rs.add("ServerC")
Replica Set: Επαναδιαμόρφωση ή κατάργηση χρησιμοποιώντας rs.remove()
Για να καταργήσουμε έναν διακομιστή από το σύνολο ρυθμίσεων, πρέπει να χρησιμοποιήσουμε την εντολή "rs.remove".
Βήμα 1) Αρχικά, εκτελέστε τερματισμό λειτουργίας της παρουσίας που θέλετε να καταργήσετε. Αυτό μπορεί να γίνει εκτελώντας την εντολή db.shutdownServer από το κέλυφος mongo.
Βήμα 2) Συνδεθείτε στον κύριο διακομιστή.
Βήμα 3) Χρησιμοποιήστε την εντολή rs.remove για να καταργήσετε τον απαιτούμενο διακομιστή από το σύνολο αντιγράφων. Ας υποθέσουμε λοιπόν ότι έχετε ένα σύνολο αντιγράφων με ServerA, ServerB και ServerC και θέλετε να καταργήσετε τον ServerC από το σύνολο αντιγράφων, εκτελέστε την εντολή:
rs.remove("ServerC")
Αντιμετώπιση προβλημάτων σετ αντιγράφων
Οι ακόλουθοι είναι οι ίδιοι τρόποι με τους οποίους μπορεί κανείς να αντιμετωπίσει προβλήματα όταν αντιμετωπίζει προβλήματα με τη χρήση συνόλων αντιγράφων.
- Βεβαιωθείτε ότι όλες οι παρουσίες του mongo.exe μπορούν να συνδεθούν μεταξύ τους. Ας υποθέσουμε ότι έχετε 3 διακομιστές που ονομάζονται ServerA, ServerB και ServerC. Από τον ServerA, εκτελέστε τις παρακάτω 2 εντολές:
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
- Εκτελέστε την εντολή rs.status. Αυτή η εντολή δίνει την κατάσταση του συνόλου αντιγράφων. Από προεπιλογή, κάθε μέλος θα στέλνει μηνύματα μεταξύ του που ονομάζονται μηνύματα "heartbeat", τα οποία απλώς υποδεικνύουν ότι ο διακομιστής είναι ενεργός και λειτουργεί. Η εντολή "status" λαμβάνει την κατάσταση αυτών των μηνυμάτων και εμφανίζει εάν υπάρχουν προβλήματα με κάποια μέλη στο σύνολο αντιγράφων.
- Ελέγξτε το μέγεθος του Oplog. Το Oplog είναι μια συλλογή σε MongoDB που αποθηκεύει την ιστορία των γραπτών που έγιναν στο MongoDB βάση δεδομένων. MongoDB στη συνέχεια χρησιμοποιεί αυτό το Oplog για να αναπαράγει τις εγγραφές στα άλλα μέλη του συνόλου αντιγράφων. Για να ελέγξετε το Oplog, συνδεθείτε στην απαιτούμενη παρουσία μέλους και εκτελέστε την εντολή rs.printReplicationInfo. Αυτή η εντολή θα δείξει το μέγεθος του αρχείου καταγραφής και πόσο καιρό μπορεί να κρατήσει συναλλαγές στο αρχείο καταγραφής του προτού γεμίσει.


