So konfigurieren Sie einen hochverfügbaren Datenbankcluster unter Linux
In modernen Internetanwendungen spielen Datenbanken eine sehr wichtige Rolle. Um Datenzuverlässigkeit und Hochverfügbarkeit sicherzustellen, konfigurieren viele Unternehmen hochverfügbare Datenbankcluster. In diesem Artikel erfahren Sie, wie Sie einen hochverfügbaren Datenbankcluster unter Linux konfigurieren, um sicherzustellen, dass bei einem Datenbankausfall schnell auf eine Standby-Datenbank umgeschaltet werden kann, um den kontinuierlichen Betrieb der Anwendung sicherzustellen.
Wir werden MySQL als Beispieldatenbank verwenden, um zu demonstrieren, wie man einen hochverfügbaren MySQL-Datenbankcluster unter Linux konfiguriert.
Zuerst müssen Sie MySQL unter Linux installieren. Sie können den folgenden Befehl verwenden:
sudo apt-get install mysql-server
In einem Hochverfügbarkeits-Datenbankcluster wird normalerweise die Master-Slave-Replikation verwendet, um eine Datensynchronisierung zu erreichen. In diesem Modus dient ein Datenbankserver als Master-Server, der für das Schreiben und Aktualisieren von Daten verantwortlich ist, und andere Datenbankserver fungieren als Slave-Server, die für das Lesen von Daten und die Synchronisierung der Daten des Master-Servers in Echtzeit verantwortlich sind.
Zuerst müssen Sie es auf dem Hauptserver konfigurieren. Bearbeiten Sie die MySQL-Konfigurationsdatei my.cnf
, suchen und ändern Sie die folgende Konfiguration: 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
bearbeiten und die folgende Konfiguration suchen und ändern: sudo service keepalived restart sudo service haproxy restart
Slave_IO_Running
und Slave_SQL_Running
werden angezeigt. Beide sind Ja
, was darauf hinweist, dass die Master-Slave-Synchronisierung erfolgreich eingerichtet wurde. 🎜/etc/keepalived/keepalived.conf
und ändern Sie die folgende Konfiguration: 🎜rrreee🎜Speichern und schließen Sie die Datei. 🎜🎜Bearbeiten Sie als Nächstes die HAProxy-Konfigurationsdatei /etc/haproxy/haproxy.cfg
und fügen Sie die folgende Konfiguration hinzu: 🎜rrreee🎜Speichern und schließen Sie die Datei. 🎜🎜Zum Schluss starten Sie die Dienste Keepalived und HAProxy neu: 🎜rrreee🎜 Wenn nun der Primärserver ausfällt, wechselt Keepalived die virtuelle IP-Adresse zur Standby-Datenbank und leitet den Datenverkehr an HAProxy weiter. 🎜🎜Durch die oben genannten Schritte haben wir erfolgreich einen hochverfügbaren Datenbankcluster unter Linux konfiguriert. Wenn die Datenbank ausfällt, schaltet das System automatisch auf die Standby-Datenbank um und sorgt so für Datenzuverlässigkeit und hohe Verfügbarkeit. Ich hoffe, dieser Artikel kann Ihnen bei der Konfiguration eines hochverfügbaren Datenbankclusters helfen. 🎜Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie einen hochverfügbaren Datenbankcluster unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!