いわゆるカスケード レプリケーションでは、マスター サーバーが 1 つのスレーブ サーバーにのみデータを同期し、その後スレーブ サーバーがバックエンドのすべてのスレーブ サーバーにデータを同期することで、マスター サーバーの書き込み負荷と複製されたデータのネットワーク IO が軽減されます。 1. マスターサーバーを構成する 1. メイン設定ファイルを変更する vim /etc/my.cnf [mysql]設定ブロックの下に次の2行の設定を追加します。 [mysql] log_bin # バイナリログを有効にする server_id=1 # 現在のノードにグローバルに一意のIDを設定する 2. 設定を有効にするためにMySQLサービスを再起動します。 systemctl 再起動 mairadb 3. コピー権限を持つユーザーアカウントを作成する 'replpass' によって識別される 'repluser'@'HOST' に *.* 上のレプリケーション スレーブを許可します。 コマンド分析:
このコマンドの目的は、repluserがデータベースのすべての内容をコピーすることを許可することです。 2. リレースレーブサーバーの構成 1. メイン設定ファイルを変更する vim /etc/my.cnf [mysql]設定ブロックに次の2行の設定を追加します。 [mysqld] ログビン server_id=2 #現在のノードにグローバルに一意の ID 番号を設定します。read_only=ON #スレーブ サーバーを読み取り専用に制限します。「注意: この制限は SUPER 権限を持つユーザーには無効です」 log_slave_updates #この項目の目的は、マスターサーバーのバイナリログをローカルマシンに記録し、そのバイナリログをバックエンドの他のスレーブサーバーにコピーすることです。 2. 設定を有効にするためにMySQLサービスを再起動します。 systemctl で mariadb を再起動します。 3. レプリケーション権限を持つユーザーアカウントを使用してプライマリサーバーに接続し、レプリケーションスレッドを開始します。 マスターを変更 MASTER_HOST='host', #マスターホストのIPアドレスを指定 MASTER_USER='repluser'、#マスターの承認済みユーザー名を指定します。MASTER_PASSWORD='replpass'、#承認済みユーザーのパスワードを指定します。MASTER_LOG_FILE='mysql-bin.xxxxx'、#マスター サーバーのコピー元となるバイナリ ログを指定します。MASTER_LOG_POS=#; #バイナリ ログの位置。マスター サーバーでこのコマンドを実行して表示できます。show master logs; レプリケーションスレッドIO_THREADとSQL_THREADを開始します。 スレーブを起動します。 4. リレースレーブサーバの状態を確認する MariaDB [(なし)]> スレーブを起動します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) MariaDB [(なし)]> スレーブステータスを表示\G ************************** 1. 行 **************************** Slave_IO_State: マスターがイベントを送信するのを待機中 マスターホスト: 192.168.68.7 マスターユーザー: repluser マスターポート: 3306 接続再試行: 60 マスターログファイル: mariadb-bin.000001 読み取りマスターログ位置: 557 リレーログファイル: mariadb-relay-bin.000002 リレーログ位置: 843 リレーマスターログファイル: mariadb-bin.000001 Slave_IO_Running: はい「NO の場合はスレッドが起動していないことを意味するので特に注意してください」 Slave_SQL_Running: はい「NO の場合は特に注意してください。スレッドが起動していないことを意味します」 レプリケート_Do_DB: レプリケート_無視_DB: テーブルの複製: 無視テーブルを複製: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: 最終エラー番号: 0 最終エラー: スキップカウンタ: 0 実行マスターログポジション: 557 リレーログスペース: 1139 Until_Condition: なし ログファイルまで: ログ位置まで: 0 マスターSSL許可: いいえ マスターSSLCAファイル: マスターSSLCAパス: マスターSSL証明書: マスターSSL暗号: マスターSSLキー: Seconds_Behind_Master: 0 「この項目は同期時間を示します。0 は即時同期を意味します。」 Master_SSL_Verify_Server_Cert: いいえ 最終IOエラー番号: 0 最後のIOエラー: 最終SQLエラー番号: 0 最後のSQLエラー: Replicate_Ignore_Server_Ids: マスターサーバーID: 1 3. バックエンドスレーブ構成 1. 設定ファイルを変更する vim /etc/my.cnf [mysql]設定ブロックに次の2行の設定を追加します。 [mysqld] server_id=3 #現在のノードにグローバルに一意のID番号を設定します。read_only=ON #スレーブサーバーを読み取り専用に制限します。「注意: この制限は、SUPER権限を持つユーザーには無効です」 2. 設定を有効にするためにMySQLサービスを再起動します。 systemctl で mariadb を再起動します。 3. レプリケーション権限を持つユーザーアカウントを使用してプライマリサーバーに接続し、レプリケーションスレッドを開始します。 マスターを変更 MASTER_HOST='リレーホスト', #リレースレーブホストのIPを指定 MASTER_USER='repluser'、#マスターの承認済みユーザー名を指定します。MASTER_PASSWORD='replpass'、#承認済みユーザーのパスワードを指定します。MASTER_LOG_FILE='mysql-bin.xxxxx'、#リレースレーブサーバーがコピーを開始するバイナリログを指定します。MASTER_LOG_POS=#; #バイナリログの位置。スレーブサーバーでこのコマンドを実行して表示できます。show master logs; レプリケーションスレッドIO_THREADとSQL_THREADを開始します。 スレーブを起動します。 4. スレーブサーバーのステータスを確認する MariaDB [(なし)]> スレーブを起動します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) MariaDB [(なし)]> スレーブステータスを表示\G ************************** 1. 行 **************************** Slave_IO_State: マスターがイベントを送信するのを待機中 マスターホスト: 192.168.68.17 マスターユーザー: repluser マスターポート: 3306 接続再試行: 60 マスターログファイル: mariadb-bin.000001 読み取りマスターログ位置: 557 リレーログファイル: mariadb-relay-bin.000002 リレーログ位置: 843 リレーマスターログファイル: mariadb-bin.000001 Slave_IO_Running: はい「NO の場合はスレッドが起動していないことを意味するので特に注意してください」 Slave_SQL_Running: はい「NO の場合は特に注意してください。スレッドが起動していないことを意味します」 レプリケート_Do_DB: レプリケート_無視_DB: テーブルの複製: 無視テーブルを複製: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: 最終エラー番号: 0 最終エラー: スキップカウンタ: 0 実行マスターログポジション: 557 リレーログスペース: 1139 Until_Condition: なし ログファイルまで: ログ位置まで: 0 マスターSSL許可: いいえ マスターSSLCAファイル: マスターSSLCAパス: マスターSSL証明書: マスターSSL暗号: マスターSSLキー: Seconds_Behind_Master: 0 「この項目は同期時間を示します。0 は即時同期を意味します。」 Master_SSL_Verify_Server_Cert: いいえ 最終IOエラー番号: 0 最後のIOエラー: 最終SQLエラー番号: 0 最後のSQLエラー: Replicate_Ignore_Server_Ids: マスターサーバーID: 1 5.最後に、マスターサーバーでデータベーステストを作成し、同期されているかどうかを確認します。 カスケードレプリケーション機能
要約する
以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Centos8 に nginx をインストールするための詳細なチュートリアル (画像とテキスト)
>>: Vue でインスタント通信を実現するために MQTT サーバーを使用する手順を記録します。
Openlayers は、WebGIS クライアント向けのモジュール式で高性能かつ機能豊富な Jav...
ウェブサイトを作成する学生は、アクセス時に一部の nginx サーバーが 504 Gateway T...
この記事では、アコーディオンを実装するためのjQueryの具体的なコードを参考までに紹介します。具体...
序文クエリ情報が複数のテーブルから取得される場合、クエリのためにこれらのテーブルを結合する必要があり...
序文: MySQL マスター/スレーブ アーキテクチャは、最も一般的に使用されるアーキテクチャ セッ...
環境準備: VMware+CentOS、jdk 1. システムディスクのサイズを確認する1. コマン...
順序なしリストでは、順序なしリストのシンボルは各リストの前に表示されるドットです。順序付きリスト o...
管理者権限でcmdを実行する slmgr /ipk CB7KF-BWN84-R7R2Y-793K2-...
Ubuntu 16.04 に MySQL 5.7 をインストールするにはどうすればいいですか?メイ...
シングルページアプリケーションの特徴「前提:」Web ページには、クリックするとサイト内の他のページ...
現在、ほとんどのプロジェクトが Docker 上にデプロイされ始めていますが、デプロイのプロセスはま...
この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...
目次動画最優秀選手ムヴヴムVueのソーススパ mpa要素を作成するクラス要約する動画 Model(模...
HTML を使用してコンテンツをマークアップする目的は、Web ページにセマンティクスを与えることで...
CSS スクロールバースタイル変更コード .scroll::-webkit-scrollbar { ...