Comment configurer la surveillance de la réplication maître-esclave d'une base de données à haute disponibilité sous Linux
Introduction :
Dans les environnements technologiques modernes, les bases de données sont un composant clé et de nombreuses applications en dépendent. Pour des raisons de disponibilité et de protection des données, la haute disponibilité des bases de données et la réplication maître-esclave sont des fonctionnalités très importantes. Cet article explique comment configurer la surveillance de la réplication maître-esclave d'une base de données à haute disponibilité sous Linux et présente les étapes à l'aide d'un exemple de code.
Comment fonctionne la réplication maître-esclave :
La réplication maître-esclave est une méthode de réplication de base de données courante, dans laquelle un serveur de base de données agit en tant que serveur maître (Maître) et d'autres serveurs agissent en tant que serveurs esclaves (Esclave). Les opérations d'écriture reçues par le serveur maître seront copiées sur le serveur esclave. Cette architecture offre les avantages de la redondance des données, de la séparation lecture-écriture et de la reprise après panne.
Configurer le serveur principal :
Tout d'abord, nous devons installer le serveur de base de données. Cet article prend MySQL comme exemple.
Installer le serveur MySQL :
sudo apt update sudo apt install mysql-server
Configurer le serveur maître :
Modifier le fichier de configuration MySQL :
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Rechercher les lignes suivantes dans le fichier et modifier les :
bind-address = 0.0.0.0 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log
Redémarrer le service MySQL :
sudo systemctl restart mysql
Configurer le serveur esclave :
Installer le serveur MySQL :
sudo apt update sudo apt install mysql-server
Configurer le serveur esclave :
Editer le fichier de configuration MySQL :
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Rechercher la ligne suivante dans le fichier et modifier-la :
bind-address = 0.0.0.0 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log relay_log = /var/log/mysql/mysql-relay-bin.log
Redémarrez le service MySQL :
sudo systemctl restart mysql
Définissez la relation maître-esclave :
Créez un utilisateur sur le serveur maître pour la réplication :
mysql -u root -p GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EXIT;
Configurez les informations du serveur maître sur le serveur esclave :
mysql -u root -p CHANGE MASTER TO MASTER_HOST='主服务器的IP地址', MASTER_USER='replication_user', MASTER_PASSWORD='password'; START SLAVE; EXIT;
Surveillance de la configuration :
Afin de garantir la haute disponibilité de la réplication maître-esclave de la base de données, nous devons surveiller son état et détecter et gérer les pannes en temps opportun. Vous trouverez ci-dessous un simple script de surveillance écrit en Python.
Installez les packages Python requis :
sudo apt update sudo apt install python3-pip pip3 install mysql-connector-python pip3 install smtplib
Créez le fichier Monitor.py et copiez le code suivant dans le fichier :
import smtplib import mysql.connector from email.mime.text import MIMEText def send_email(message): sender = "your_email@gmail.com" receiver = "recipient_email@gmail.com" subject = "Database Replication Alert" msg = MIMEText(message) msg['Subject'] = subject msg['From'] = sender msg['To'] = receiver try: with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp: smtp.login(sender, "your_password") smtp.sendmail(sender, receiver, msg.as_string()) print("Email sent successfully!") except Exception as e: print("Email failed to send: " + str(e)) def monitor_replication(): try: connection = mysql.connector.connect(host="localhost", user="replication_user", password="password", database="test") cursor = connection.cursor() cursor.execute("SELECT COUNT(*) FROM my_table") result = cursor.fetchone() cursor.close() connection.close() print("Replication is working fine, number of records: " + str(result[0])) except mysql.connector.Error as error: message = "Replication failed: " + str(error) print(message) send_email(message) if __name__ == "__main__": monitor_replication()
Conclusion :
Grâce aux étapes ci-dessus, nous pouvons configurer la surveillance de la réplication maître-esclave de bases de données hautement disponibles sous Linux. La surveillance continue de l'état de la base de données est essentielle pour la récupération après panne et la disponibilité. À l’aide de l’exemple de code, nous pouvons détecter et gérer les problèmes de réplication maître-esclave de la base de données à temps pour garantir le bon fonctionnement de l’entreprise.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!