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.
Tout d'abord, vous devez installer MySQL sur Linux. Vous pouvez utiliser la commande suivante :
sudo apt-get install mysql-server
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
然后,重启MySQL服务。
接下来,在从服务器上进行配置。同样,需要编辑MySQL的配置文件my.cnf
,找到并修改以下配置:
server-id=2 relay-log=mysql-relay-bin log_slave_updates=1 read_only=1
然后,重启MySQL服务。
现在,主从服务器已经成功配置好了,接下来需要设置主从同步。在主服务器上,使用以下命令创建一个用于同步的用户:
CREATE USER 'replication'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'; FLUSH PRIVILEGES;
然后,执行以下命令获取主服务器的二进制日志文件和位置:
SHOW MASTER STATUS;
得到的结果类似于:
+---------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------+----------+--------------+------------------+ | mysql-bin.0001| 107 | test | | +---------------+----------+--------------+------------------+
接下来,在从服务器上执行以下命令开始进行主从同步:
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;
在从服务器上执行以下命令查看主从同步状态:
SHOW SLAVE STATUSG
如果显示Slave_IO_Running
和Slave_SQL_Running
都为Yes
,表示主从同步已成功设置。
当主服务器出现故障时,需要手动切换到备用数据库。为了方便切换,可以使用Keepalived和HAProxy来实现自动切换。
首先,需要安装Keepalived和HAProxy。可以使用以下命令:
sudo apt-get install keepalived haproxy
然后,编辑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 } }
保存并关闭文件。
接下来,编辑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
my.cnf
, rechercher et modifier la configuration suivante : sudo service keepalived restart sudo service haproxy restart
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. 🎜/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!