Android

Πώς να ρυθμίσετε την εντολή mysql (mariadb) master

How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox

How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox

Πίνακας περιεχομένων:

Anonim

Η αντιγραφή MySQL είναι μια διαδικασία αντιγραφής δεδομένων από έναν διακομιστή βάσης δεδομένων (master) σε έναν ή περισσότερους διακομιστές (σκλάβοι).

Η MySQL υποστηρίζει αρκετές τοπολογίες αντιγραφής με τοπολογία Master / Slave να είναι μία από τις πιο γνωστές τοπολογίες στις οποίες ένας διακομιστής βάσης δεδομένων λειτουργεί ως κύριος, ενώ ένας ή περισσότεροι εξυπηρετητές δρουν ως σκλάβοι. Από προεπιλογή, η αναπαραγωγή είναι ασύγχρονη, όπου ο κύριος αποστολέας μεταδίδει γεγονότα που περιγράφουν τις τροποποιήσεις βάσεων δεδομένων στο δυαδικό αρχείο καταγραφής και οι σκλάβοι ζητούν τα συμβάντα όταν είναι έτοιμα.

Σε αυτόν τον οδηγό θα σας δείξουμε πώς μπορείτε να ρυθμίσετε την αναπαραγωγή του MasterDB Master / Slave με ένα master και ένα slave server στο Debian 10. Η MariaDB είναι η προεπιλεγμένη εφαρμογή της MySQL στο Debian. Τα ίδια βήματα ισχύουν για την Oracle MySQL.

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

Προϋποθέσεις

Υποθέτουμε ότι έχετε δύο διακομιστές που εκτελούν Debian 10, επικοινωνώντας μεταξύ τους μέσω ιδιωτικού δικτύου. Εάν ο παροχέας φιλοξενίας σας δεν υποστηρίζει ιδιωτικές διευθύνσεις IP, μπορείτε να χρησιμοποιήσετε τις δημόσιες διευθύνσεις IP και να διαμορφώσετε το τείχος προστασίας ώστε να επιτρέπεται η κίνηση στη θύρα 3306 μόνο από αξιόπιστες πηγές.

Οι διακομιστές που χρησιμοποιούνται σε αυτό το παράδειγμα έχουν τις ακόλουθες διευθύνσεις IP:

Master IP: 10.10.8.12 Slave IP: 10.10.8.164

Εγκατάσταση του MariaDB

Η προεπιλογή Οι αποθήκες του Debian 10 περιλαμβάνουν την έκδοση MariaDB 10.3. Είναι καλύτερο να εγκαταστήσετε την ίδια έκδοση MariaDB και στους δύο διακομιστές για να αποφύγετε πιθανά προβλήματα.

Εγκαταστήστε το MariaDB τόσο στον κύριο όσο και στον σκλάβο, εκδίδοντας τις ακόλουθες εντολές:

sudo apt-get update sudo apt-get install mariadb-server

Ρύθμιση του κύριου διακομιστή

Το πρώτο βήμα είναι να ρυθμίσετε τον κύριο διακομιστή. Θα προβούμε στις ακόλουθες αλλαγές:

  • Ορίστε τον διακομιστή MariaDB για να ακούσετε την ιδιωτική διεύθυνση IP. Ρυθμίστε ένα μοναδικό αναγνωριστικό διακομιστή. Ενεργοποιήστε τη δυαδική καταγραφή.

Ανοίξτε το αρχείο διαμόρφωσης MariaDB και ξεκλειδώστε ή ορίστε τις ακόλουθες γραμμές:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf master: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.12 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

Αφού γίνει, αποθηκεύστε το αρχείο και κάντε επανεκκίνηση της υπηρεσίας MySQL για να τεθούν σε ισχύ οι αλλαγές:

sudo systemctl restart mariadb

Το επόμενο βήμα είναι να δημιουργήσετε έναν νέο χρήστη αναπαραγωγής. Συνδεθείτε στο διακομιστή MariaDB ως χρήστης root:

sudo mysql

Εκτελέστε τα ακόλουθα ερωτήματα SQL για να δημιουργήσετε ένα χρήστη που ονομάζεται replica και παραχωρήστε το δικαίωμα REPLICATION SLAVE στο χρήστη:

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164'; Βεβαιωθείτε ότι έχετε αλλάξει την IP με την υποκείμενη διεύθυνση IP. Μπορείτε να ονομάσετε τον χρήστη όπως θέλετε.

Ενώ βρίσκεστε ακόμα μέσα στην εντολή MySQL, εκτελέστε την ακόλουθη εντολή που θα εκτυπώσει το δυαδικό όνομα αρχείου και τη θέση.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)

Σημειώστε το όνομα του αρχείου, το 'mysql-bin.000001' και τη θέση '328'. Αυτές οι τιμές είναι απαραίτητες κατά τη διαμόρφωση του διακομιστή σκλάβου και πιθανόν να είναι διαφορετικές στον διακομιστή σας.

Ρύθμιση του διακομιστή Slave

Θα κάνουμε τις ίδιες αλλαγές στο διακομιστή σκλάβου με εκείνες του κύριου διακομιστή:

  • Ρυθμίστε τον διακομιστή MySQL για να ακούσετε την ιδιωτική διεύθυνση IP. Ορίστε ένα μοναδικό αναγνωριστικό διακομιστή. Ενεργοποιήστε τη δυαδική καταγραφή.

Ανοίξτε το αρχείο διαμόρφωσης MariaDB και επεξεργαστείτε τις ακόλουθες γραμμές:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf slave: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.164 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

Κάντε επανεκκίνηση της υπηρεσίας MariaDB:

sudo systemctl restart mariadb

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

sudo mysql

Ξεκινήστε σταματώντας τα σκλαβιά:

STOP SLAVE;

Εκτελέστε το ακόλουθο ερώτημα για να διαμορφώσετε την αναπαραγωγή Master / Slave:

CHANGE MASTER TO MASTER_HOST='10.10.8.12', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

Βεβαιωθείτε ότι χρησιμοποιείτε τη σωστή διεύθυνση IP, το όνομα χρήστη και τον κωδικό πρόσβασης. Το όνομα και η θέση του αρχείου καταγραφής πρέπει να είναι ίδια με τις τιμές που αποκτήσατε από τον κύριο διακομιστή.

Αφού γίνει, ξεκινήστε τα σκλαβιά.

START SLAVE;

Ελέγξτε τη διαμόρφωση

Σε αυτό το σημείο, θα πρέπει να έχετε μια ρύθμιση αναπαραγωγής Master / Slave.

Για να επαληθεύσετε ότι όλα είναι εγκατεστημένα σωστά, δημιουργήστε μια νέα βάση δεδομένων στον κύριο διακομιστή:

sudo mysql

CREATE DATABASE replicatest;

Σύνδεση στο σκλάβος MySQL shell:

sudo mysql

Εκτελέστε την ακόλουθη εντολή για να εμφανίσετε όλες τις βάσεις δεδομένων:

SHOW DATABASES;

Θα παρατηρήσετε ότι η βάση δεδομένων που δημιουργήσατε στον κύριο διακομιστή αντιγράφεται στον σκλάβο:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

συμπέρασμα

Σε αυτό το σεμινάριο, σας δείξαμε ότι δημιουργείτε μια αναπαραγωγή MasterDB / Slave στο Debian 10.

Μη διστάσετε να αφήσετε ένα σχόλιο εάν έχετε οποιεσδήποτε ερωτήσεις.

debian mysql mariadb