ホームページ > データベース > mysql チュートリアル > MySQL でデータベースの高可用性と災害復旧を実現するにはどうすればよいですか?

MySQL でデータベースの高可用性と災害復旧を実現するにはどうすればよいですか?

王林
リリース: 2023-07-30 10:10:54
オリジナル
1281 人が閲覧しました

MySQL でデータベースの高可用性と災害復旧を実現するにはどうすればよいですか?

インターネットの急速な発展に伴い、データベースは現代のアプリケーションに不可欠な部分になりました。高同時実行性、高可用性、災害復旧の観点から、データベースの安定性と信頼性がより重要になっています。 MySQL は、最も一般的に使用され、成熟したリレーショナル データベースの 1 つです。この記事では、MySQL でデータベースの高可用性と災害復旧を実現する方法を紹介します。

1. マスター/スレーブ レプリケーション
マスター/スレーブ レプリケーションは、データベースの高可用性を実現するための MySQL の一般的なソリューションです。マスター/スレーブ レプリケーションを通じて、マスター データベースのデータを 1 つ以上のスレーブ データベースにコピーすることで、データのバックアップと読み取りと書き込みの分離を実現できます。

MySQL では、マスター/スレーブ レプリケーションの構成は主に次の手順に分かれています。

  1. マスター サーバーで、my.cnf 構成ファイル (通常は次の場所にあります) を見つけます。 /etc /mysql または /etc/my.cnf) に次の設定を追加します:

    [mysqld]
    log_bin=mysql-bin
    server_id=1
    ログイン後にコピー

    log_binこのパラメータは、バイナリ ログがメイン サーバー上のすべての更新操作を記録できるようにするために使用されます。 。 server_id パラメータは、一意のマスター サーバーを識別するために使用されます。

  2. MySQL サービスを再起動して、構成を有効にします。

    sudo service mysql restart
    ログイン後にコピー
  3. サーバーからメインサーバーにアクセスするための新しいユーザーを作成します。 MySQL コマンド ラインを開き、次のコマンドを実行します。

    CREATE USER 'replication'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
    ログイン後にコピー

    ここで、replication はカスタマイズされたユーザー名、password はパスワードです。実際の状況に応じて設定してください。

  4. マスター サーバーで次のコマンドを実行してマスター サーバーのステータスを表示し、ファイルと位置の値を記録します (スレーブ サーバーを構成するときに使用されます)。 :

    SHOW MASTER STATUS;
    ログイン後にコピー
  5. スレーブ サーバーで、my.cnf 構成ファイルを見つけて、次の構成を追加します:

    [mysqld]
    server_id=2
    ログイン後にコピー

    server_idパラメーターが使用されます一意のスレーブ サーバーを識別します。

  6. MySQL サービスを再起動して、構成を有効にします。
  7. スレーブ サーバーで、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 アドレスに置き換えてください。replicationpassword は、手順 3 で作成したユーザーとパスワードに置き換える必要があります。 ファイル値からステップ 4 の は、ステップ 4 の Position 値 から、それぞれメイン サーバー ステータスの File 値と Position 値に置き換えられます。

  8. スレーブ サーバーからレプリケーション プロセスを開始します:

    START SLAVE;
    ログイン後にコピー
  9. スレーブ サーバーからレプリケーション ステータスを表示します:

    SHOW SLAVE STATUS G;
    ログイン後にコピー

    正常に構成されている場合は、Slave_IO_RunningSlave_SQL_Running の 2 つのフィールドを観察して、ステータスが正常であるかどうかを確認できます。

2. マスター/スレーブ切り替え (フェイルオーバー)
マスター/スレーブ レプリケーションはデータのバックアップと読み書きの分離を実現できますが、マスター サーバーがダウンした場合は手動で切り替える必要があります。スレーブサーバーに切り替えます。自動切り替えを実現するには、MHA (MySQL High Availability) や ProxySQL などの他のツールを組み合わせてマスター/スレーブ切り替えを実行できます。

MHA は、MySQL の高可用性と災害復旧構成に特に使用されるツールです。次の手順でマスター/スレーブ切り替えを実装できます。

  1. MHA ツールキットをインストールします。

    sudo apt-get install mha4mysql-node
    ログイン後にコピー
  2. 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 アドレスに置き換える必要があります。

  3. 次のコマンドを実行して、スレーブ サーバー上で MHA 管理ツールを実行します。

    masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf
    ログイン後にコピー

    このコマンドは、マスター サーバーを監視し、マスター サーバーが停止したときにマスター操作を実行します。ダウン。から切り替えます。

3. データのバックアップとリカバリ
マスター/スレーブ レプリケーションとマスター/スレーブ切り替えに加えて、定期的なデータ バックアップもデータベースの可用性と災害復旧を確保する重要な方法です。 MySQL では、データのバックアップとリカバリに mysqldump コマンドを使用できます。

  1. バックアップ データベース:

    mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
    ログイン後にコピー

    このうち、ユーザー名データベース名は実際のユーザーに置き換える必要がありますname とデータベース名、Backup file.sql はバックアップ ファイルのパスとファイル名です。

  2. データベースを復元します:

    mysql -u 用户名 -p 数据库名 < 备份文件.sql
    ログイン後にコピー

    このうち、ユーザー名データベース名を実際のものに置き換える必要があります。ユーザー名とデータベース名。 Backup file.sql は、復元する必要があるバックアップ ファイルです。

上記は、MySQL でデータベースの高可用性と災害復旧を実現する方法について簡単に説明したものです。マスター/スレーブ レプリケーション、マスター/スレーブ切り替え、データ バックアップを通じて、データベースの安定性と可用性を確保し、最新のアプリケーションのニーズをより適切に満たすことができます。もちろん、MySQL には他の高可用性ソリューションや災害復旧ソリューションもあり、読者は実際のニーズに応じてそれらを選択して構成できます。

参考資料:

  1. MySQL レプリケーション - レプリケーションのセットアップ: https://dev.mysql.com/doc/refman/8.0/en/replication.html
  2. MHA: https://code.google.com/archive/p/mysql-master-ha/wikis/GettingStarted.wiki

以上がMySQL でデータベースの高可用性と災害復旧を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート