Comment configurer un cluster de bases de données hautement disponible sous Linux

WBOY
Libérer: 2023-07-05 08:10:46
original
1021 Les gens l'ont consulté

Comment configurer un cluster de bases de données hautement disponible sous Linux

Dans les applications Internet modernes, les bases de données jouent un rôle très important. Afin de garantir la fiabilité et la haute disponibilité des données, de nombreuses entreprises configurent des clusters de bases de données hautement disponibles. Cet article explique comment configurer un cluster de bases de données hautement disponible sous Linux pour garantir qu'en cas de panne de la base de données, elle puisse rapidement basculer vers une base de données de secours pour assurer le fonctionnement continu de l'application.

Nous utiliserons MySQL comme exemple de base de données pour démontrer comment configurer un cluster de bases de données MySQL hautement disponible sous Linux.

  1. Installer MySQL

Tout d'abord, vous devez installer MySQL sur Linux. Vous pouvez utiliser la commande suivante :

sudo apt-get install mysql-server
Copier après la connexion
  1. Configurer la réplication maître-esclave

Dans un cluster de bases de données à haute disponibilité, la réplication maître-esclave est généralement utilisée pour réaliser la synchronisation des données. Dans ce mode, un serveur de base de données sert de serveur maître, responsable de l'écriture et de la mise à jour des données, et d'autres serveurs de base de données servent de serveurs esclaves, responsables de la lecture des données et de la synchronisation des données du serveur maître en temps réel.

Tout d'abord, vous devez le configurer sur le serveur principal. Editez le fichier de configuration MySQL my.cnf, recherchez et modifiez la configuration suivante : my.cnf,找到并修改以下配置:

server-id=1
log_bin=mysql-bin
binlog_format=row
Copier après la connexion

然后,重启MySQL服务。

接下来,在从服务器上进行配置。同样,需要编辑MySQL的配置文件my.cnf,找到并修改以下配置:

server-id=2
relay-log=mysql-relay-bin
log_slave_updates=1
read_only=1
Copier après la connexion

然后,重启MySQL服务。

  1. 设置主从同步

现在,主从服务器已经成功配置好了,接下来需要设置主从同步。在主服务器上,使用以下命令创建一个用于同步的用户:

CREATE USER 'replication'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
FLUSH PRIVILEGES;
Copier après la connexion

然后,执行以下命令获取主服务器的二进制日志文件和位置:

SHOW MASTER STATUS;
Copier après la connexion

得到的结果类似于:

+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.0001| 107       | test         |                  |
+---------------+----------+--------------+------------------+
Copier après la connexion

接下来,在从服务器上执行以下命令开始进行主从同步:

CHANGE MASTER TO MASTER_HOST='master_server_ip', MASTER_USER='replication', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.0001', MASTER_LOG_POS=107;
START SLAVE;
Copier après la connexion

在从服务器上执行以下命令查看主从同步状态:

SHOW SLAVE STATUSG
Copier après la connexion

如果显示Slave_IO_RunningSlave_SQL_Running都为Yes,表示主从同步已成功设置。

  1. 配置主从切换

当主服务器出现故障时,需要手动切换到备用数据库。为了方便切换,可以使用Keepalived和HAProxy来实现自动切换。

首先,需要安装Keepalived和HAProxy。可以使用以下命令:

sudo apt-get install keepalived haproxy
Copier après la connexion

然后,编辑Keepalived的配置文件/etc/keepalived/keepalived.conf,修改以下配置:

vrrp_script chk_mysql {
    script "killall -0 mysqld"
    interval 2
    weight -2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass your_password
    }
    track_script {
        chk_mysql
    }
    virtual_ipaddress {
        192.168.1.100/24
    }
}
Copier après la connexion

保存并关闭文件。

接下来,编辑HAProxy的配置文件/etc/haproxy/haproxy.cfg

listen mysql-cluster
    bind 192.168.1.100:3306
    mode tcp
    option mysql-check user haproxy_check
    balance roundrobin
    server mysql1 192.168.1.101:3306 check
    server mysql2 192.168.1.102:3306 check backup
Copier après la connexion

Ensuite, redémarrez le service MySQL.

Ensuite, configurez sur le serveur esclave. De même, vous devez éditer le fichier de configuration MySQL my.cnf, rechercher et modifier la configuration suivante :

sudo service keepalived restart
sudo service haproxy restart
Copier après la connexion
Ensuite, redémarrez le service MySQL.

    Configurer la synchronisation maître-esclave

    🎜Maintenant que le serveur maître-esclave a été configuré avec succès, vous devez configurer la synchronisation maître-esclave. Sur le serveur maître, utilisez la commande suivante pour créer un utilisateur pour la synchronisation : 🎜rrreee🎜 Ensuite, exécutez la commande suivante pour obtenir le fichier journal binaire et l'emplacement du serveur maître : 🎜rrreee🎜Le résultat que vous obtenez est similaire à : 🎜 rrreee🎜 Ensuite, dans Exécutez la commande suivante sur le serveur pour démarrer la synchronisation maître-esclave : 🎜rrreee🎜Exécutez la commande suivante sur le serveur esclave pour afficher l'état de la synchronisation maître-esclave : 🎜rrreee🎜If Slave_IO_Running et Slave_SQL_Running sont affichés. Les deux sont Oui, indiquant que la synchronisation maître-esclave a été configurée avec succès. 🎜
      🎜Configurer la commutation maître-esclave🎜🎜🎜Lorsque le serveur principal tombe en panne, vous devez basculer manuellement vers la base de données de secours. Pour faciliter la commutation, Keepalived et HAProxy peuvent être utilisés pour mettre en œuvre la commutation automatique. 🎜🎜Tout d'abord, Keepalived et HAProxy doivent être installés. Vous pouvez utiliser la commande suivante : 🎜rrreee🎜 Ensuite, éditez le fichier de configuration Keepalived /etc/keepalived/keepalived.conf et modifiez la configuration suivante : 🎜rrreee🎜Enregistrez et fermez le fichier. 🎜🎜Ensuite, éditez le fichier de configuration HAProxy /etc/haproxy/haproxy.cfg et ajoutez la configuration suivante : 🎜rrreee🎜Enregistrez et fermez le fichier. 🎜🎜Enfin, redémarrez les services Keepalived et HAProxy : 🎜rrreee🎜Maintenant, lorsque le serveur principal tombe en panne, Keepalived basculera l'adresse IP virtuelle vers la base de données de secours et transmettra le trafic vers HAProxy. 🎜🎜Grâce aux étapes ci-dessus, nous avons configuré avec succès un cluster de bases de données hautement disponible sur Linux. En cas de panne de la base de données, le système bascule automatiquement vers la base de données de secours, garantissant ainsi la fiabilité et la haute disponibilité des données. J'espère que cet article pourra vous aider à configurer un cluster de bases de données hautement disponible. 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal