MySQL でデータベースの高可用性と災害復旧を実現するにはどうすればよいですか?
インターネットの急速な発展に伴い、データベースは現代のアプリケーションに不可欠な部分になりました。高同時実行性、高可用性、災害復旧の観点から、データベースの安定性と信頼性がより重要になっています。 MySQL は、最も一般的に使用され、成熟したリレーショナル データベースの 1 つです。この記事では、MySQL でデータベースの高可用性と災害復旧を実現する方法を紹介します。
1. マスター/スレーブ レプリケーション
マスター/スレーブ レプリケーションは、データベースの高可用性を実現するための MySQL の一般的なソリューションです。マスター/スレーブ レプリケーションを通じて、マスター データベースのデータを 1 つ以上のスレーブ データベースにコピーすることで、データのバックアップと読み取りと書き込みの分離を実現できます。
MySQL では、マスター/スレーブ レプリケーションの構成は主に次の手順に分かれています。
マスター サーバーで、my.cnf 構成ファイル (通常は次の場所にあります) を見つけます。 /etc /mysql または /etc/my.cnf) に次の設定を追加します:
[mysqld] log_bin=mysql-bin server_id=1
log_bin
このパラメータは、バイナリ ログがメイン サーバー上のすべての更新操作を記録できるようにするために使用されます。 。 server_id
パラメータは、一意のマスター サーバーを識別するために使用されます。
MySQL サービスを再起動して、構成を有効にします。
sudo service mysql restart
サーバーからメインサーバーにアクセスするための新しいユーザーを作成します。 MySQL コマンド ラインを開き、次のコマンドを実行します。
CREATE USER 'replication'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
ここで、replication
はカスタマイズされたユーザー名、password
はパスワードです。実際の状況に応じて設定してください。
マスター サーバーで次のコマンドを実行してマスター サーバーのステータスを表示し、ファイルと位置の値を記録します (スレーブ サーバーを構成するときに使用されます)。 :
SHOW MASTER STATUS;
スレーブ サーバーで、my.cnf 構成ファイルを見つけて、次の構成を追加します:
[mysqld] server_id=2
server_id
パラメーターが使用されます一意のスレーブ サーバーを識別します。
スレーブ サーバーで、MySQL コマンド ラインを開き、次のコマンドを実行してマスター/スレーブ レプリケーションを構成します:
CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='从步骤4中的File值', MASTER_LOG_POS=从步骤4中的Position值;
その中に、マスター サーバーの IP アドレス
は必須です。実際のプライマリ サーバーの IP アドレスに置き換えてください。replication
と password
は、手順 3 で作成したユーザーとパスワードに置き換える必要があります。 ファイル値からステップ 4 の
と は、ステップ 4 の Position 値
から、それぞれメイン サーバー ステータスの File 値と Position 値に置き換えられます。
スレーブ サーバーからレプリケーション プロセスを開始します:
START SLAVE;
スレーブ サーバーからレプリケーション ステータスを表示します:
SHOW SLAVE STATUS G;
正常に構成されている場合は、Slave_IO_Running
と Slave_SQL_Running
の 2 つのフィールドを観察して、ステータスが正常であるかどうかを確認できます。
2. マスター/スレーブ切り替え (フェイルオーバー)
マスター/スレーブ レプリケーションはデータのバックアップと読み書きの分離を実現できますが、マスター サーバーがダウンした場合は手動で切り替える必要があります。スレーブサーバーに切り替えます。自動切り替えを実現するには、MHA (MySQL High Availability) や ProxySQL などの他のツールを組み合わせてマスター/スレーブ切り替えを実行できます。
MHA は、MySQL の高可用性と災害復旧構成に特に使用されるツールです。次の手順でマスター/スレーブ切り替えを実装できます。
MHA ツールキットをインストールします。
sudo apt-get install mha4mysql-node
MHA 構成ファイルを作成します。 /etc/mha/app1.cnf
の内容は次のとおりです。
[server default] manager_workdir=/var/log/masterha/app1 manager_log=/var/log/masterha/app1/manager.log [server1] hostname=主服务器IP地址 candidate_master=1 recovery_user=replication recovery_password=password [server2] hostname=从服务器IP地址 candidate_master=1 recovery_user=replication recovery_password=password
このうち、マスターサーバーのIPアドレス
とスレーブサーバーのIPアドレス
は実際の IP アドレスに置き換える必要があります。
次のコマンドを実行して、スレーブ サーバー上で MHA 管理ツールを実行します。
masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf
このコマンドは、マスター サーバーを監視し、マスター サーバーが停止したときにマスター操作を実行します。ダウン。から切り替えます。
3. データのバックアップとリカバリ
マスター/スレーブ レプリケーションとマスター/スレーブ切り替えに加えて、定期的なデータ バックアップもデータベースの可用性と災害復旧を確保する重要な方法です。 MySQL では、データのバックアップとリカバリに mysqldump コマンドを使用できます。
バックアップ データベース:
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
このうち、ユーザー名
とデータベース名
は実際のユーザーに置き換える必要がありますname とデータベース名、Backup file.sql
はバックアップ ファイルのパスとファイル名です。
データベースを復元します:
mysql -u 用户名 -p 数据库名 < 备份文件.sql
このうち、ユーザー名
とデータベース名
を実際のものに置き換える必要があります。ユーザー名とデータベース名。 Backup file.sql
は、復元する必要があるバックアップ ファイルです。
上記は、MySQL でデータベースの高可用性と災害復旧を実現する方法について簡単に説明したものです。マスター/スレーブ レプリケーション、マスター/スレーブ切り替え、データ バックアップを通じて、データベースの安定性と可用性を確保し、最新のアプリケーションのニーズをより適切に満たすことができます。もちろん、MySQL には他の高可用性ソリューションや災害復旧ソリューションもあり、読者は実際のニーズに応じてそれらを選択して構成できます。
参考資料:
以上がMySQL でデータベースの高可用性と災害復旧を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。