MongoDB Replication: Πώς να δημιουργήσετε MongoDB Σετ ρεπλίκας
Τι είναι MongoDB Αντιγραφή;
Η αναπαραγωγή αναφέρεται στη διαδικασία διασφάλισης ότι τα ίδια δεδομένα είναι διαθέσιμα σε περισσότερους από έναν διακομιστές Mongo DB. Αυτό μερικές φορές απαιτείται για τον σκοπό της αύξησης της διαθεσιμότητας δεδομένων.
Διότι αν ο κύριος σας MongoDB Ο διακομιστής πέφτει για οποιοδήποτε λόγο, δεν θα υπάρχει πρόσβαση στα δεδομένα. Αλλά αν είχατε την αναπαραγωγή των δεδομένων σε άλλο διακομιστή σε τακτά χρονικά διαστήματα, θα μπορείτε να έχετε πρόσβαση στα δεδομένα από άλλο διακομιστή, ακόμη και αν ο κύριος διακομιστής αποτύχει.
Ένας άλλος σκοπός της αναπαραγωγής είναι η δυνατότητα εξισορρόπησης φορτίου. Εάν υπάρχουν πολλοί χρήστες που συνδέονται στο σύστημα, αντί να συνδέονται όλοι σε ένα σύστημα, οι χρήστες μπορούν να συνδεθούν σε πολλούς διακομιστές, ώστε να υπάρχει ίση κατανομή του φορτίου.
In MongoDB, πολλαπλά MongoDB Οι διακομιστές ομαδοποιούνται σε σύνολα που ονομάζονται σύνολα Replica. Το σετ Replica θα έχει έναν πρωτεύοντα διακομιστή που θα δέχεται όλη τη λειτουργία εγγραφής από πελάτες. Όλα τα άλλα στιγμιότυπα που προστίθενται στο σύνολο μετά από αυτό θα ονομάζονται δευτερεύουσες παρουσίες που μπορούν να χρησιμοποιηθούν κυρίως για όλες τις λειτουργίες ανάγνωσης.
Πώς να δημιουργήσετε αντίγραφο σετ 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. Αυτή η επιλογή παρέχει μια ομαδοποίηση για όλους τους διακομιστές που θα αποτελούν μέρος αυτού του συνόλου αντιγράφων.
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. Από τον διακομιστή Α, εκδώστε τις παρακάτω 2 εντολές
mongo –host ServerB –port 27017 mongo –host ServerC –port 27017
- Εκτελέστε την εντολή rs.status. Αυτή η εντολή δίνει την κατάσταση του συνόλου αντιγράφων. Από προεπιλογή, κάθε μέλος θα στέλνει μηνύματα το ένα στο άλλο που ονομάζονται μηνύματα «χτύπου καρδιάς», τα οποία απλώς υποδεικνύουν ότι ο διακομιστής είναι ζωντανός και λειτουργεί. Η εντολή "status" λαμβάνει την κατάσταση αυτών των μηνυμάτων και δείχνει εάν υπάρχουν προβλήματα με κάποια μέλη στο σύνολο αντιγράφων.
- Ελέγξτε το μέγεθος του Oplog – Το Oplog είναι μια συλλογή στο MongoDB που αποθηκεύει την ιστορία των γραπτών που έγιναν στο MongoDB βάση δεδομένων. MongoDB στη συνέχεια χρησιμοποιεί αυτό το Oplog για να αναπαράγει τις εγγραφές στα άλλα μέλη του συνόλου αντιγράφων. Για να ελέγξετε το Oplog, συνδεθείτε στην απαιτούμενη παρουσία μέλους και εκτελέστε την εντολή rs.printReplicationInfo. Αυτή η εντολή θα δείξει το μέγεθος του αρχείου καταγραφής και πόσο καιρό μπορεί να κρατήσει συναλλαγές στο αρχείο καταγραφής του προτού γεμίσει.
Σύνοψη
Αντιγραφή σε MongoDB αναφέρεται στη διαδικασία διασφάλισης ότι τα ίδια δεδομένα είναι διαθέσιμα σε περισσότερους από έναν διακομιστές Mongo DB. Πολλά μέλη (MongoDB περιπτώσεις) μπορούν να προστεθούν στο σετ Replica ανάλογα με τις απαιτήσεις.