Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie einen hochverfügbaren Datenbankcluster unter Linux

So konfigurieren Sie einen hochverfügbaren Datenbankcluster unter Linux

WBOY
WBOYOriginal
2023-07-05 08:10:461014Durchsuche

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.

  1. MySQL installieren

Zuerst müssen Sie MySQL unter Linux installieren. Sie können den folgenden Befehl verwenden:

sudo apt-get install mysql-server
  1. Master-Slave-Replikation konfigurieren

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服务。

  1. 设置主从同步

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

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_RunningSlave_SQL_Running都为Yes,表示主从同步已成功设置。

  1. 配置主从切换

当主服务器出现故障时,需要手动切换到备用数据库。为了方便切换,可以使用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

Starten Sie dann den MySQL-Dienst neu.

Als nächstes konfigurieren Sie auf dem Slave-Server. Ebenso müssen Sie die MySQL-Konfigurationsdatei my.cnf bearbeiten und die folgende Konfiguration suchen und ändern:

sudo service keepalived restart
sudo service haproxy restart

Starten Sie dann den MySQL-Dienst neu.

    Master-Slave-Synchronisierung einrichten

    🎜Nachdem der Master-Slave-Server erfolgreich konfiguriert wurde, müssen Sie die Master-Slave-Synchronisierung einrichten. Verwenden Sie auf dem Master-Server den folgenden Befehl, um einen Benutzer für die Synchronisierung zu erstellen: 🎜rrreee🎜 Führen Sie dann den folgenden Befehl aus, um die binäre Protokolldatei und den Speicherort des Master-Servers abzurufen: 🎜rrreee🎜Das Ergebnis sieht ähnlich aus: 🎜 rrreee🎜 Als nächstes führen Sie den folgenden Befehl auf dem Server aus, um die Master-Slave-Synchronisierung zu starten: 🎜rrreee🎜Führen Sie den folgenden Befehl auf dem Slave-Server aus, um den Master-Slave-Synchronisierungsstatus anzuzeigen: 🎜rrreee🎜Wenn Slave_IO_Running und Slave_SQL_Running werden angezeigt. Beide sind Ja, was darauf hinweist, dass die Master-Slave-Synchronisierung erfolgreich eingerichtet wurde. 🎜
      🎜Master-Slave-Umschaltung konfigurieren🎜🎜🎜Wenn der Hauptserver ausfällt, müssen Sie manuell zur Standby-Datenbank wechseln. Um den Wechsel zu erleichtern, können Keepalived und HAProxy verwendet werden, um einen automatischen Wechsel zu implementieren. 🎜🎜Zuerst müssen Keepalived und HAProxy installiert werden. Sie können den folgenden Befehl verwenden: 🎜rrreee🎜 Bearbeiten Sie dann die Keepalived-Konfigurationsdatei /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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn