Επιστροφή στο blog

Ρύθμιση Αναπαραγωγής στη MySQL σε Ubuntu

Ρύθμιση Αναπαραγωγής στη MySQL σε Ubuntu

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

Σε αυτόν τον οδηγό, θα δούμε τα βήματα για τη ρύθμιση ενός στιγμιότυπου MySQL σε έναν διακομιστή ως βάση δεδομένων source, και στη συνέχεια τη διαμόρφωση ενός στιγμιότυπου MySQL σε έναν άλλο διακομιστή ώστε να λειτουργεί ως replica του.

Προαπαιτούμενα

Αυτός ο οδηγός θα παρουσιάσει ένα πολύ απλό παράδειγμα MySQL replication. Περιλαμβάνει μία source και μία replica βάση δεδομένων. Η source βάση δεδομένων είναι το κύριο αντίγραφο της βάσης δεδομένων, ενώ η replica βάση δεδομένων θα είναι το αντίγραφο της source βάσης δεδομένων. Για την παρουσίασή μας, δύο διακομιστές έχουν ρυθμιστεί με τις ακόλουθες διευθύνσεις IP:

  • Source server: 31.171.240.179
  • Replica server: 31.171.250.139

Κάθε διακομιστής είναι ρυθμισμένος με την τελευταία έκδοση Ubuntu 20.04 server διαμόρφωσης. Αρχικά, ακολουθήστε τα βήματα του οδηγού που δείχνουν πώς να ρυθμίσετε τον διακομιστή Ubuntu σας. Σημειώστε ότι ο αριθμός των βάσεων δεδομένων replica μπορεί να είναι μεγαλύτερος. Αυτός ο οδηγός προϋποθέτει ότι έχετε ήδη εγκαταστήσει και ρυθμίσει τη MySQL. Χρειάζεστε βοήθεια με την εγκατάσταση της MySQL; Αυτός ο οδηγός παρουσιάζει σε βάθος τα βήματα για την MySQL installation and basic usage.

Με λίγα λόγια, εδώ είναι τα πακέτα που χρειάζεστε:

Τα τείχη προστασίας (firewalls) και στα δύο συστήματα θα πρέπει να ρυθμιστούν ώστε να επιτρέπουν την κίνηση και από τα δύο συστήματα στη θύρα 3306. Είναι η προεπιλεγμένη θύρα για τη MySQL. Μπορείτε να μάθετε περισσότερα για τα UFW basics with a demonstration από την ανάρτηση στο ιστολόγιό μας.

Διαμόρφωση της βάσης δεδομένων Source

  • Προσαρμογή της διαμόρφωσης της MySQL

Η MySQL χρησιμοποιεί το my.cnf ως το κύριο αρχείο διαμόρφωσης. Θα ενημερώσουμε το my.cnf για να ορίσουμε τον διακομιστή ως source. Αρχικά, ανοίξτε το αρχείο διαμόρφωσης με έναν επεξεργαστή κειμένου:

Στη συνέχεια, προσθέστε τις ακόλουθες γραμμές κάτω από την ενότητα mysqld:

Replication in MySQL 4

What do these lines mean?

  • bind-address: Αυτή είναι η καταχώριση που ορίζει τη συσχέτιση μεταξύ μιας υπηρεσίας και μιας διεύθυνσης IP. Από προεπιλογή, η τιμή μπορεί να είναι 127.0.0.1 (localhost). Η νέα τιμή θα είναι η διεύθυνση IP του διακομιστή.
  • server-id: Στο MySQL replication, κάθε διακομιστής πρέπει να έχει ένα μοναδικό ID διακομιστή. Μπορεί να είναι οποιοσδήποτε αριθμός. Για λόγους απλότητας, έχει οριστεί σε 1.
  • log_bin: Αποθηκεύει τις πραγματικές λεπτομέρειες της αντιγραφής. Η βάση δεδομένων replica πρόκειται να αντιγράψει οτιδήποτε έχει καταγραφεί στο αρχείο καταγραφής (log).
  • binlog_do_db: Αυτή η καταχώριση ορίζει τη βάση δεδομένων που θα αποτελέσει το αντικείμενο της αντιγραφής στον διακομιστή replica. Μπορεί να υπάρχουν περισσότερες από μία βάσεις δεδομένων. Εδώ, η δοκιμαστική βάση δεδομένων είναι η newdatabase.

Αφού κάνετε τις αλλαγές, αποθηκεύστε το αρχείο διαμόρφωσης. Η MySQL απαιτεί επανεκκίνηση για να φορτώσει τις αλλαγές στο my.cnf:

  • Εκχώρηση δικαιωμάτων στον χρήστη replica

Το επόμενο βήμα είναι να δημιουργήσετε έναν χρήστη replica και να του εκχωρήσετε τα κατάλληλα δικαιώματα. Αυτό πρέπει να γίνει από το κέλυφος (shell) της MySQL. Αρχικά, εκκινήστε το κέλυφος της MySQL:

Στη συνέχεια, δημιουργήστε έναν αποκλειστικό χρήστη για τη βάση δεδομένων replica. Αλλάξτε το όνομα χρήστη και τον κωδικό πρόσβασης κατάλληλα:

Τώρα, εκχωρήστε τα κατάλληλα δικαιώματα στον χρήστη:

Μπορείτε να μάθετε περισσότερα για τον χρήστη και τα δικαιώματα της MySQL από την ανάρτηση στο ιστολόγιό μας. Στη συνέχεια, επαναφορτώστε τον πίνακα δικαιωμάτων (grant table) για να εφαρμοστούν οι αλλαγές:

FLUSH PRIVILEGES

  • Προσαρμογή της βάσης δεδομένων

Χρειαζόμαστε ένα αντίγραφο της βάσης δεδομένων προέλευσης στο αντίγραφο. Είναι δυνατό να δημιουργηθεί χειροκίνητα η δομή. Ωστόσο, στις περισσότερες περιπτώσεις, αυτό είναι αρκετά άβολο. Γι' αυτό η απευθείας εξαγωγή της βάσης δεδομένων είναι η βέλτιστη λύση. Σε αυτό το παράδειγμα, η βάση δεδομένων προέλευσης είναι newdatabase. Αλλάξτε την τρέχουσα βάση δεδομένων:

Η ακόλουθη εντολή θα κλειδώσει τη βάση δεδομένων, αποτρέποντας τυχόν νέες αλλαγές:

Στη συνέχεια, ελέγξτε την κατάσταση της βάσης δεδομένων:

Replication in MySQL 3

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

Η εργασία ολοκληρώθηκε. Στη συνέχεια, ξεκλειδώστε τη βάση δεδομένων:

Τέλος, βγείτε από το κέλυφος:

Διαμόρφωση Αντιγράφου

Τώρα είναι η ώρα να διαμορφώσετε τη βάση δεδομένων-αντίγραφο.

  • Εισαγωγή της βάσης δεδομένων προέλευσης

Χρειαζόμαστε ένα αντίγραφο της βάσης δεδομένων προέλευσης στον διακομιστή-αντίγραφο. Θα χρησιμοποιήσουμε το αρχείο SQL που εξαγάγαμε νωρίτερα για να το κάνουμε αυτό. Εκκινήστε το κέλυφος της MySQL:

Μετά από αυτό, δημιουργήστε μια κενή βάση δεδομένων χρησιμοποιώντας το ίδιο όνομα βάσης δεδομένων:

Στη συνέχεια, βγείτε από το κέλυφος:

Τώρα, εισαγάγετε το αρχείο SQL στη βάση δεδομένων:

sudo mysql -u

  • Προσαρμογή της ρύθμισης παραμέτρων της MySQL

Υπάρχουν μερικά πράγματα που απαιτείται να δηλωθούν στο αρχείο ρυθμίσεων της MySQL. Ανοίξτε το αρχείο ρυθμίσεων σε έναν επεξεργαστή κειμένου:

Οι ακόλουθες καταχωρίσεις θα μπουν κάτω από την ενότητα mysqld. Διαφορετικά, δεν θα λειτουργήσει. Το πρώτο είναι το ID του διακομιστή. Όπως αναφέρθηκε προηγουμένως, πρέπει να είναι μοναδικό για όλους τους διακομιστές στη διαμόρφωση αναπαραγωγής προέλευσης-αντιγράφου. Για επίδειξη, έχει οριστεί σε 2:

Στη συνέχεια, προσθέστε τις ακόλουθες γραμμές:

Replication in MySQL 2

Εδώ, μόνο το relay-log είναι μια νέα καταχώριση. Είναι το αρχείο καταγραφής που δημιουργεί ο διακομιστής-αντίγραφο κατά την αναπαραγωγή. Η μορφή του αρχείου καταγραφής είναι η ίδια με το δυαδικό αρχείο καταγραφής. Αποθηκεύστε το αρχείο ρυθμίσεων και επανεκκινήστε τη MySQL:

  • Ενεργοποίηση της αναπαραγωγής

Τέλος, είμαστε έτοιμοι να ενεργοποιήσουμε την αναπαραγωγή μέσα από τη MySQL. Εκκινήστε το κέλυφος της MySQL:

Εκτελέστε την ακόλουθη εντολή. Πρώτα, αλλάξτε τη διεύθυνση IP, το όνομα χρήστη και τους κωδικούς πρόσβασης ανάλογα:

CHANGE MASTER TO MASTER_HOST

Η εντολή επιτυγχάνει τα εξής:

  • Ο τρέχων διακομιστής επισημαίνεται ως το αντίγραφο του διακομιστή προέλευσης.
  • Ο διακομιστής-αντίγραφο διαθέτει τα κατάλληλα διαπιστευτήρια σύνδεσης.
  • Ο διακομιστής-αντίγραφο γνωρίζει από πού να ξεκινήσει την αναπαραγωγή. Θυμάστε την κατάσταση της βάσης δεδομένων που ελέγξαμε στον διακομιστή προέλευσης; Το αρχείο καταγραφής προέλευσης και η θέση του αρχείου καταγραφής προέρχονται από εκεί.

Τέλος, ενεργοποιήστε τον διακομιστή-αντίγραφο:

START REPLICA

  • Διάφορα

Θέλετε να ελέγξετε τις λεπτομέρειες της τρέχουσας κατάστασης του αντιγράφου; Εκτελέστε την ακόλουθη εντολή στο κέλυφος της MySQL. Το \G στο τέλος χρησιμεύει για την αναδιάταξη των κειμένων ώστε να γίνουν πιο ευανάγνωστα:

Replication in MySQL 1

Εάν υπάρχει πρόβλημα σύνδεσης, δοκιμάστε να ξεκινήσετε τον διακομιστή-αντίγραφο για να το παρακάμψετε:

Συμπέρασμα

Η αναπαραγωγή της MySQL έχει πολλές προεκτάσεις. Είναι μόνο μια σύντομη παρουσίαση της βασικής της μορφής. Ωστόσο, μπορεί εύκολα να επεκταθεί σε διαμορφώσεις πολλαπλών πηγών-αντιγράφων (source-replica). Τα ίδια βήματα ισχύουν επίσης για οποιεσδήποτε σύνθετες διαμορφώσεις υψηλότερου επιπέδου. Είναι πάντα καλή ιδέα να δοκιμάζετε τη διαμόρφωση στη συνέχεια. Δοκιμάστε να εκτελέσετε μερικές εντολές insertdelete ή update στη βάση δεδομένων προέλευσης. Εάν η εγκατάσταση λειτουργεί, τότε η βάση δεδομένων-αντίγραφο θα πρέπει να λαμβάνει τα πάντα σωστά.

Επιπλέον, μπορείτε να δείτε περισσότερους πόρους από το blog μας σχετικά με το τι μπορείτε να κάνετε με τη MySQL:

Καλή συνέχεια!

 

author

Hark Labs

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.