MySql データ分散: マスター/スレーブ レプリケーション メカニズムを実装する方法

WBOY
リリース: 2023-06-15 22:25:40
オリジナル
1026 人が閲覧しました

MySql は一般的なリレーショナル データベース管理システムであり、データのバックアップ、負荷分散、高可用性を実現するためにデータ レプリケーションが広く使用されています。 MySql では、マスター/スレーブ レプリケーション メカニズムを使用してデータ分散を実現し、複数のシステムが同じデータにアクセスできるようにすることができます。この記事では、MySql でマスター/スレーブ レプリケーション メカニズムを実装する方法を紹介します。

1. マスター/スレーブ レプリケーション メカニズムの基本概念

マスター/スレーブ レプリケーション メカニズムは、MySql データベースの重要な機能であり、データの分散とバックアップの実現に役立ちます。メイン サーバー上のデータを 1 つ以上のスレーブ サーバーに同期的に複製して、データ分散を実現します。 MySql では、マスター サーバーがすべてのデータ更新操作の処理を担当し、スレーブ サーバーはマスター サーバーのデータをコピーすることでデータ アクセスを実現します。

MySql のマスター/スレーブ レプリケーション メカニズムでは、マスター サーバーは自身のデータ変更記録をバイナリ ログ ファイル (バイナリ ログ) に書き込み、スレーブ サーバーはバイナリを読み取ることでマスター サーバーの情報を取得します。ログファイル、データ更新操作。このようにして、スレーブ サーバーはマスター サーバー上のデータをリアルタイムで同期できるため、複数のシステムが同時にデータにアクセスすることがより簡単かつ効率的になります。

2. マスター/スレーブ レプリケーション メカニズムの設定方法

  1. 前提条件

マスター/スレーブ レプリケーション メカニズムを設定する前に、マスターサーバーとスレーブサーバーの MySql データベースがインストールされており、バージョンは同じです。さらに、マスター サーバーとスレーブ サーバーが相互にアクセスでき、マスター サーバーでバイナリ ログ機能が有効になっていることを確認する必要があります。

  1. メイン サーバーの構成

ステップ 1: サーバーからのレプリケーション用にメイン サーバー上にユーザーを作成し、そのユーザーにメイン サーバー上のすべてのデータベースへのアクセスを許可します。たとえば、replicator という名前のユーザーを作成し、そのユーザーにすべてのデータベースへのアクセス権を与えることができます。

CREATE USER 'replicator'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'replicator'@'%' WITH GRANT OPTION;
ログイン後にコピー

ステップ 2: メインサーバーのバイナリログ機能を有効にします。マスター サーバーの my.cnf 構成ファイルに次のパラメータを追加します:

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

server-id パラメータは、マスター サーバーの一意の識別子を表します。各マスター サーバーには異なる識別子が必要です。ここではこれを 1 に設定し、バイナリ ログ ファイルのプレフィックスを mysql-bin に設定します。

ステップ 3: メインサーバーを再起動して、構成ファイルの変更を有効にします。

  1. スレーブ サーバーを構成する

ステップ 1: マスター サーバーにアクセスするためのユーザーをスレーブ サーバー上に作成し、レプリケートする必要があるすべてのデータベースへのアクセスをそのユーザーに許可します。 。たとえば、backup という名前のユーザーを作成し、そのユーザーにすべてのデータベースへのアクセス権を与えることができます。

CREATE USER 'backup'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'backup'@'%' WITH GRANT OPTION;
ログイン後にコピー

ステップ 2: スレーブ サーバーの my.cnf 構成ファイルに次のパラメータを追加します。

[mysqld] server-id=2 relay-log=mysql-relay log_slave_updates=1 read_only=1
ログイン後にコピー

マスター サーバーとは異なり、スレーブ サーバーはバイナリ ログ機能を有効にする必要はありません。 。 server-id パラメータの値はメイン サーバとは異なる必要があります。ここでは 2 に設定します。 lay-log パラメータは、サーバーから受信したデータ変更レコードの保存場所を指定します。ここでは、mysql-relay という名前を付けます。 log_slave_updates パラメータは、スレーブ サーバーが生成したデータ変更レコードを独自のバイナリ ログ ファイルに書き込む必要があることを示します。 read_only パラメータは、スレーブ サーバーが読み取り操作のみに使用でき、データベースへの書き込み操作はできないことを示します。

ステップ 3: スレーブ サーバーを再起動して、構成ファイルの変更を有効にします。

  1. レプリケーションの開始

ステップ 1: スレーブ サーバーで次のコマンドを実行して、マスター サーバーとの接続を確立します。

CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='replicator', MASTER_PASSWORD='password', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
ログイン後にコピー

このうち、MASTER_HOST パラメータはマスター サーバーの IP アドレス、MASTER_USER および MASTER_PASSWORD パラメータはサーバーからのレプリケーションのためにマスター サーバー上に作成されたユーザーのユーザー名とパスワードです。 MASTER_PORT パラメータはメイン サーバーのポート番号を示します。ここでは 3306 に設定します。 MASTER_LOG_FILE および MASTER_LOG_POS パラメータは、サーバーからのデータのコピーを開始して同期を維持するバイナリ ログ ファイルの位置を指定します。ここでは、最初のバイナリ ログ ファイル (mysql-bin.000001) データの 107 バイト目からコピーを開始すると仮定します。

ステップ 2: スレーブ サーバーのレプリケーション機能を開始します。

START SLAVE;
ログイン後にコピー

このコマンドにより、スレーブ サーバーはマスター サーバーからのデータのコピーを開始します。レプリケーションのステータスは、「SHOW SLAVE STATUSG」コマンドで確認できます。

  1. レプリケーションのテスト

レプリケーションが適切に機能しているかどうかをテストするには、マスター サーバーにデータを挿入し、データがマスター サーバーに正常にレプリケートされたかどうかを確認します。スレーブサーバー。

メインサーバーで次のコマンドを実行して、データテーブルにレコードを挿入します。

INSERT INTO test_table (name, age) VALUES ('Tom', 25);
ログイン後にコピー

スレーブサーバで以下のコマンドを実行し、test_tableテーブルのデータが同期されているかを確認します。

SELECT * FROM test_table;
ログイン後にコピー

挿入されたデータがスレーブ サーバーで確認できる場合は、マスター/スレーブ レプリケーション メカニズムが正常に構成され、開始されたことを意味します。

3. 概要

MySql のマスター/スレーブ レプリケーション メカニズムは、データの分散と同期を実現するための重要な手段であり、実際のプロジェクトで広く使用されています。この記事では、マスター サーバーとスレーブ サーバーの構成、マスター サーバーとスレーブ サーバー間のレプリケーション チャネルの確立など、MySql でマスター/スレーブ レプリケーション メカニズムを構成する方法を紹介します。以上の手順でMySqlにマスター・スレーブレプリケーション機能を簡単に実装することができます。

以上がMySql データ分散: マスター/スレーブ レプリケーション メカニズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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