Maison  >  Article  >  Opération et maintenance  >  Comment configurer la surveillance de la réplication maître-esclave d'une base de données à haute disponibilité sous Linux

Comment configurer la surveillance de la réplication maître-esclave d'une base de données à haute disponibilité sous Linux

王林
王林original
2023-07-05 09:15:07725parcourir

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.

  1. Installer le serveur MySQL :

    sudo apt update
    sudo apt install mysql-server
  2. 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
  3. Redémarrer le service MySQL :

    sudo systemctl restart mysql

Configurer le serveur esclave :

  1. Installer le serveur MySQL :

    sudo apt update
    sudo apt install mysql-server
  2. 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
  3. Redémarrez le service MySQL :

    sudo systemctl restart mysql

Définissez la relation maître-esclave :

  1. 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;
  2. 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;
  3. Vérifiez si la réplication maître-esclave fonctionne correctement :
    Créez une base de données et une table sur le serveur principal et insérez des données. Vérifiez ensuite si les données correspondantes sont visibles sur le serveur esclave.

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.

  1. Installez les packages Python requis :

    sudo apt update
    sudo apt install python3-pip
    pip3 install mysql-connector-python
    pip3 install smtplib
  2. 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()
  3. Modifiez les informations de configuration dans Monitor.py, y compris l'expéditeur et le destinataire. L'e-mail de l'expéditeur l'adresse et le mot de passe de messagerie de l'expéditeur.
  4. Exécutez le script monitor.py, qui peut être ajouté à une tâche planifiée pour surveiller régulièrement l'état de la réplication maître-esclave de la base de données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn