MySQL でデータの非同期レプリケーションと遅延レプリケーションを実装するにはどうすればよいですか?

王林
リリース: 2023-07-31 12:58:49
オリジナル
1424 人が閲覧しました

MySQL は一般的に使用されるリレーショナル データベース管理システムです。実際のアプリケーションでは、データ レプリケーションが必要なシナリオによく遭遇します。データ レプリケーションは、同期レプリケーションと非同期レプリケーションの 2 つの形式に分類できます。同期レプリケーションは、マスター データベースがデータを書き込んだ直後にデータをスレーブ データベースにコピーする必要があることを意味しますが、非同期レプリケーションは、マスター データベースがデータを書き込んだ後、コピー前にデータを一定期間遅らせることができることを意味します。この記事では、MySQL でデータの非同期レプリケーションと遅延レプリケーションを実装する方法に焦点を当てます。

まず、非同期レプリケーションと遅延レプリケーションを実現するには、MySQL 構成ファイルのバイナリログ形式を ROW モードに設定する必要があります。 MySQL 構成ファイル (通常は my.cnf) を開き、次の構成を追加します。

[mysqld]
binlog_format=ROW
ログイン後にコピー

次に、マスター/スレーブ レプリケーション環境を作成する必要があります。まず、メイン データベースの MySQL サービスを開始し、レプリケーション用のアカウントを作成し、適切な権限を与えます:

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

次に、MySQL 構成ファイルを編集して、次の構成をメイン データベースに追加します:

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

その後、メインデータベースのMySQLサービスを再起動します。

次に、スレーブ ライブラリで MySQL サービスを開始し、レプリケーション用のアカウントを作成して適切な権限を付与します。

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

スレーブ ライブラリで MySQL 構成ファイルを編集し、次の構成を追加します。 :

[mysqld]
server-id=2
relay-log=slave
ログイン後にコピー

データベースから MySQL サービスを再起動します。

メイン ライブラリで次のコマンドを実行して、現在のメイン ライブラリのステータス情報を取得します。

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

でレプリケーションを構成するために使用されるファイルと位置の値を記録します。奴隷図書館。

次に、スレーブ ライブラリで次のコマンドを実行してレプリケーションを構成します:

CHANGE MASTER TO MASTER_HOST='主库IP地址', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='主库的File值', MASTER_LOG_POS=主库的Position值;
ログイン後にコピー

次に、レプリケーション プロセスを開始します:

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

スレーブ ライブラリでは、レプリケーションの状態を確認するには、次のコマンドを実行します。

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

次に、遅延レプリケーションを実装する方法を紹介します。 MySQL 5.6.6 以降では、MySQL はレプリケーション遅延を制御するためのパラメータ、slave_pending_jobs_size を提供します。このパラメータは、データベースからの複製を待機しているトランザクションの数を制御するために使用されます。このパラメータの値を適切に設定することで、遅延レプリケーションを実装できます。

スレーブ ライブラリで次のコマンドを実行して、レプリケーション遅延を 30 秒に設定します。

SET GLOBAL slave_pending_jobs_size=100000;
ログイン後にコピー

最後に、レプリケーションと遅延レプリケーションが成功したかどうかを確認します。メイン ライブラリにデータを挿入し、スレーブ ライブラリでコピーが成功したかどうかを確認します。

メイン ライブラリで次のコマンドを実行して、データを挿入します。

USE 数据库名;
INSERT INTO 表名 (字段1, 字段2) VALUES ('value1', 'value2');
ログイン後にコピー

次に、スレーブ ライブラリで次のコマンドを実行して、レプリケーションが成功したかどうかを確認します。

USE 数据库名;
SELECT * FROM 表名;
ログイン後にコピー

挿入されたデータがデータベースから正常にクエリされた場合は、レプリケーションと遅延レプリケーションの両方が正常に実装されたことを意味します。 。

要約すると、この記事では、MySQL でデータの非同期レプリケーションと遅延レプリケーションを実装する方法を紹介します。非同期データ レプリケーションは、MySQL 構成ファイルの binlog 形式を ROW モードに設定し、マスター/スレーブ データベースで対応するパラメータと権限を構成することによって実現できます。データの遅延レプリケーションは、レプリケーション遅延パラメータslave_pending_jobs_sizeの値を設定することで実現できます。これらの機能は、MySQL データベースの管理と使用を改善するのに役立ちます。

以上がMySQL でデータの非同期レプリケーションと遅延レプリケーションを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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