Αναπτύξτε ένα σετ ρεπλίκα με υψηλή διαθεσιμότητα στο MongoDB 3.4 με χρήση αρχείου κλειδιού για έλεγχο πρόσβασης στο Ubuntu 16.04

Από τη σύλληψή της το 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.


Εγκατάσταση του InfluxDB στο Ubuntu 14

Εγκατάσταση του InfluxDB στο Ubuntu 14

Εισαγωγή Το InfluxDB είναι μια βάση δεδομένων ανοιχτού κώδικα, κατανεμημένης χρονολογικής σειράς, χωρίς εξωτερικές εξαρτήσεις. Ναι, διαβάσατε την παρ. χωρίς εξωτερικές εξαρτήσεις

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο Ubuntu 16.04 LTS

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο Ubuntu 16.04 LTS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Apache Cassandra είναι ένα δωρεάν και ανοιχτού κώδικα σύστημα διαχείρισης βάσεων δεδομένων NoSQL που έχει σχεδιαστεί για να παρέχει επεκτασιμότητα, υψηλή

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο CentOS 7

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Apache Cassandra είναι ένα δωρεάν και ανοιχτού κώδικα σύστημα διαχείρισης βάσεων δεδομένων NoSQL που έχει σχεδιαστεί για να παρέχει επεκτασιμότητα, υψηλή

Πώς να εγκαταστήσετε και να ρυθμίσετε το ArangoDB στο CentOS 7

Πώς να εγκαταστήσετε και να ρυθμίσετε το ArangoDB στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το ArangoDB είναι μια βάση δεδομένων NoSQL ανοιχτού κώδικα με ένα ευέλικτο μοντέλο δεδομένων για έγγραφα, γραφήματα και κλειδιά-τιμές. είναι

Πώς να εγκαταστήσετε το Laravel GitScrum στο CentOS 7

Πώς να εγκαταστήσετε το Laravel GitScrum στο CentOS 7

Το Laravel GitScrum ή GitScrum είναι ένα εργαλείο παραγωγικότητας ανοιχτού κώδικα που έχει σχεδιαστεί για να βοηθά τις ομάδες ανάπτυξης να εφαρμόσουν τη μεθοδολογία Scrum με παρόμοιο τρόπο

Δημιουργία αντιγράφων ασφαλείας πολλαπλών βάσεων δεδομένων MySQL ή MariaDB αυτόματα

Δημιουργία αντιγράφων ασφαλείας πολλαπλών βάσεων δεδομένων MySQL ή MariaDB αυτόματα

Εισαγωγή Σε αυτήν την εγγραφή, διαβάστε καλά πώς μπορείτε να δημιουργήσετε αντίγραφα ασφαλείας πολλών βάσεων δεδομένων MySQL ή MariaDB που βρίσκονται στον ίδιο υπολογιστή χρησιμοποιώντας ένα προσαρμοσμένο σενάριο bash

Πώς να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους του OrientDB Community Edition στο CentOS 7

Πώς να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους του OrientDB Community Edition στο CentOS 7

Το OrientDB είναι ένα NoSQL DBMS ανοιχτού κώδικα πολλαπλών μοντέλων επόμενης γενιάς. Με την υποστήριξη πολλαπλών μοντέλων δεδομένων, το OrientDB μπορεί να προσφέρει περισσότερη λειτουργικότητα και ευελιξία

Ασφάλιση MongoDB

Ασφάλιση MongoDB

Το MongoDB δεν είναι ασφαλές από προεπιλογή. Εάν εγκαθιστάτε το MongoDB και το εκκινείτε χωρίς να το ρυθμίσετε για έλεγχο ταυτότητας, θα περάσετε άσχημα

Δημιουργία αντιγράφων ασφαλείας βάσεων δεδομένων MySQL

Δημιουργία αντιγράφων ασφαλείας βάσεων δεδομένων MySQL

Το MySQL είναι το πιο δημοφιλές λογισμικό στον κόσμο που χρησιμοποιείται για βάσεις δεδομένων. Είναι πολύ σημαντικό να βεβαιωθείτε ότι έχετε αντίγραφα ασφαλείας της βάσης δεδομένων σας. Αυτή η πρακτική επιτρέπει

Πώς να δημιουργήσετε αντίγραφα ασφαλείας και να επαναφέρετε βάσεις δεδομένων PostgreSQL στο Ubuntu 16.04

Πώς να δημιουργήσετε αντίγραφα ασφαλείας και να επαναφέρετε βάσεις δεδομένων PostgreSQL στο Ubuntu 16.04

Εισαγωγή Το PostgreSQL είναι ένα δωρεάν και ανοιχτού κώδικα σύστημα διαχείρισης βάσεων δεδομένων που μπορεί να χρησιμοποιηθεί για την αποθήκευση πληροφοριών που σχετίζονται με ιστότοπους. Είναι επίσης γνωστό α

Πώς να εγκαταστήσετε το PostgreSQL 11.1 στο Arch Linux

Πώς να εγκαταστήσετε το PostgreSQL 11.1 στο Arch Linux

Προϋποθέσεις Ένας διακομιστής Vultr με ενημερωμένο Arch Linux (δείτε αυτό το άρθρο.) Πρόσβαση Sudo. Οι εντολές που απαιτούνται για να εκτελεστούν ως root έχουν το πρόθεμα # και ένα

Αναπτύξτε ένα σετ ρεπλίκα με υψηλή διαθεσιμότητα στο MongoDB 3.4 με χρήση αρχείου κλειδιού για έλεγχο πρόσβασης στο Ubuntu 16.04

Αναπτύξτε ένα σετ ρεπλίκα με υψηλή διαθεσιμότητα στο MongoDB 3.4 με χρήση αρχείου κλειδιού για έλεγχο πρόσβασης στο Ubuntu 16.04

Από τη σύλληψή της το 2009, η MongoDB ηγείται της βιομηχανίας NoSQL. Μία από τις βασικές έννοιες του MongoDB είναι το Replica Set, επομένως πριν εργαστείτε με το i

Εγκαταστήστε νεότερες εκδόσεις του MongoDB στο Debian 7

Εγκαταστήστε νεότερες εκδόσεις του MongoDB στο Debian 7

Το MongoDB είναι μια γρήγορη και ισχυρή βάση δεδομένων NoSQL. Ωστόσο, τα αποθετήρια του Debian ενημερώνονται αργά και συχνά περιέχουν πολύ παλιές εκδόσεις πακέτων. Αυτό το σεμινάριο

Ρύθμιση Barnyard 2 With Snort

Ρύθμιση Barnyard 2 With Snort

Το Barnyard2 είναι ένας τρόπος αποθήκευσης και επεξεργασίας των δυαδικών εξόδων από το Snort σε μια βάση δεδομένων MySQL. Πριν ξεκινήσουμε, σημειώστε ότι εάν δεν έχετε ροχαλητό

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο Debian 9

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο Debian 9

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Apache Cassandra είναι ένα δωρεάν και ανοιχτού κώδικα σύστημα διαχείρισης βάσεων δεδομένων NoSQL που έχει σχεδιαστεί για να παρέχει επεκτασιμότητα, υψηλή

Εγκαταστήστε το RockMongo στο CentOS 7

Εγκαταστήστε το RockMongo στο CentOS 7

Το RockMongo είναι ένα διαδικτυακό εργαλείο διαχείρισης MongoDB που είναι παρόμοιο με το εργαλείο διαχείρισης MySQL: phpMyAdmin. Αυτό το σεμινάριο θα καλύψει τη διαδικασία εγκατάστασης

Εγκαταστήστε το InfluxDB στο Debian Jessie με το Telegraf

Εγκαταστήστε το InfluxDB στο Debian Jessie με το Telegraf

Εισαγωγή Το InfluxDB είναι μια βάση δεδομένων που βασίζεται σε χρονοσειρές γραμμένη στο Go. Το InfluxDB έχει πολλές πρακτικές χρήσεις, μία από τις οποίες είναι η αποθήκευση δεδομένων παρακολούθησης σε διακομιστές. Εγώ

Ασφαλίστε το MariaDB με υποστήριξη SSL στο Ubuntu 16.04

Ασφαλίστε το MariaDB με υποστήριξη SSL στο Ubuntu 16.04

Το MariaDB είναι μια δωρεάν βάση δεδομένων ανοιχτού κώδικα και είναι η πιο ευρέως χρησιμοποιούμενη αντικατάσταση drop-in για την MySQL. Είναι κατασκευασμένο από τους προγραμματιστές της MySQL και προορίζεται να παραμείνει

Πώς να εγκαταστήσετε το phpRedisAdmin στο CentOS 7

Πώς να εγκαταστήσετε το phpRedisAdmin στο CentOS 7

Το phpRedisAdmin είναι μια εφαρμογή Ιστού που διαχειρίζεται βάσεις δεδομένων Redis με ένα διαισθητικό γραφικό περιβάλλον εργασίας χρήστη. Αυτό το σεμινάριο θα εξηγήσει πώς να εγκαταστήσετε

Πώς να εγκαταστήσετε και να χρησιμοποιήσετε το ArangoDB στο Ubuntu 16.04

Πώς να εγκαταστήσετε και να χρησιμοποιήσετε το ArangoDB στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το ArangoDB είναι μια βάση δεδομένων NoSQL ανοιχτού κώδικα με ένα ευέλικτο μοντέλο δεδομένων για έγγραφα, γραφήματα και κλειδιά-τιμές. είναι

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα