Linux 上で高可用性データベース クラスターを構成する方法
現代のインターネット アプリケーションでは、データベースが非常に重要な役割を果たしています。データの信頼性と高可用性を確保するために、多くの企業は高可用性データベース クラスターを構成しています。この記事では、Linux 上で高可用性データベース クラスターを構成し、データベースに障害が発生した場合にスタンバイ データベースにすぐに切り替えてアプリケーションの継続的な動作を確保する方法を紹介します。
MySQL をサンプル データベースとして使用し、Linux 上で高可用性 MySQL データベース クラスターを構成する方法を示します。
まず、MySQL を Linux にインストールする必要があります。次のコマンドを使用できます:
sudo apt-get install mysql-server
高可用性データベース クラスターでは、通常、データ同期を実現するためにマスター/スレーブ レプリケーションが使用されます。 。このモードでは、1 つのデータベース サーバーがマスター サーバーとして機能し、データの書き込みと更新を担当し、他のデータベース サーバーがスレーブ サーバーとして機能し、データの読み取りとマスター サーバーのデータをリアルタイムで同期します。
まず、メインサーバーで設定する必要があります。 MySQL 構成ファイル 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;
The結果は次のようになります:
+---------------+----------+--------------+------------------+ | 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 } }
Save andファイルを閉じます。
次に、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
ファイルを保存して閉じます。
最後に、Keepalived サービスと HAProxy サービスを再起動します。
sudo service keepalived restart sudo service haproxy restart
さて、プライマリ サーバーに障害が発生すると、Keepalived は仮想 IP アドレスをスタンバイ データベースに切り替え、トラフィックを HAProxy に転送します。
上記の手順により、Linux 上に高可用性データベース クラスターを正常に構成できました。データベースに障害が発生すると、システムは自動的にスタンバイ データベースに切り替わり、データの信頼性と高可用性が確保されます。この記事が高可用性データベース クラスターの構成に役立つことを願っています。
以上がLinux 上で高可用性データベース クラスターを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。