いわゆるカスケード レプリケーションでは、マスター サーバーが 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 サーバーを使用する手順を記録します。
HTMLタグの説明1. HTMLタグタグ: !DOCTYPE説明: HTML ドキュメントが準拠する...
MySQL 5.5.56無料インストール版の設定方法をテキストコードで詳しく説明します。具体的な内容...
MySQLソフトウェアのインストールとデータベースの基礎は参考用です。具体的な内容は次のとおりです。...
Dockerのインストール公式インストールスクリプトを使用して最新バージョンのDockerをインスト...
目次1. ファイルをインポートする2. HTMLページ3. メインコード4. 画像をbase64に変...
アンカータグの使用法:同じドキュメント内の特定の場所にリンクすることをアンカー リンクと呼びます。ア...
前回のキャンバス ゲーム シリーズへようこそ: 《VUEがFlappy Birdを実装しました〜〜〜...
ソフトウェアとハードウェア環境centos7.6.1810 64ビット cat /etc/red...
目次序文1. スタイルの浸透1. パターン浸透とは何ですか? 2. 使い方は? 2. ミキシング1....
目次1. 遭遇した問題2. 問題を分析する3. 本当の問題4. 解決策5. ソリューション効果1. ...
この記事では、VMware 12でのUbuntu 16.04イメージのインストールチュートリアルを参...
VirtualBoxのインストールディレクトリを見つけます。ディレクトリ内には容量を拡張するために...
システムの crontab を使用して定期的にバックアップ ファイルを実行し、バックアップ結果を日付...
Ubuntu ではデフォルトで root ログインが許可されていないため、初期の root アカウン...
目次HTML構造の定義入力タグのバインディング属性入力タグはキーダウンイベントをリッスンしますli ...