Linux 上で高可用性データベース クラスターを構成する方法

WBOY
リリース: 2023-07-05 08:10:46
オリジナル
896 人が閲覧しました

Linux 上で高可用性データベース クラスターを構成する方法

現代のインターネット アプリケーションでは、データベースが非常に重要な役割を果たしています。データの信頼性と高可用性を確保するために、多くの企業は高可用性データベース クラスターを構成しています。この記事では、Linux 上で高可用性データベース クラスターを構成し、データベースに障害が発生した場合にスタンバイ データベースにすぐに切り替えてアプリケーションの継続的な動作を確保する方法を紹介します。

MySQL をサンプル データベースとして使用し、Linux 上で高可用性 MySQL データベース クラスターを構成する方法を示します。

  1. MySQL のインストール

まず、MySQL を Linux にインストールする必要があります。次のコマンドを使用できます:

sudo apt-get install mysql-server
ログイン後にコピー
  1. マスター/スレーブ レプリケーションの構成

高可用性データベース クラスターでは、通常、データ同期を実現するためにマスター/スレーブ レプリケーションが使用されます。 。このモードでは、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 サービスを再起動します。

  1. マスター/スレーブ同期の設定

マスター/スレーブ サーバーが正常に構成されたので、マスター/スレーブ同期を設定する必要があります。マスター サーバーで、次のコマンドを使用して同期用のユーザーを作成します:

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_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
    }
}
ログイン後にコピー

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!