いわゆるカスケード レプリケーションでは、マスター サーバーが 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 サーバーを使用する手順を記録します。
序文この記事では主に、MySQL で大規模なデータ テーブルのコピーの効率を向上させることに関する関...
最近、Vue プロジェクトについて知り、ElementUI でデータを xlsx および Excel...
目次Tomcat8のインストールと設定方法tomcat ダウンロードTomcat マネージャーを有効...
ビジネス上のニーズにより、急ぎの購入が発生することが多いため、ロード バランシング フロント エンド...
1. 同時実行性同時実行性は OLTP データベースの最も重要な機能ですが、同時実行性にはリソース...
エンコーディングの理由により、Linux サーバーに中国語のファイルやディレクトリをアップロードまた...
機能シナリオを簡単に説明しましょう。データ行フィールドは次のとおりです。名前開始日時タイプこの表では...
序文:データベースの運用や保守の際には、リンクの総数がいくつあるか、アクティブなリンクがいくつあるか...
最も人気のあるフロントエンド フレームワークの 1 つとして、Vue は多くのフロントエンド開発エン...
LinuxにMySQL 8.0.25をインストールするための最新のチュートリアルを参考にしてください...
目次1. 一意の値をフィルタリングする2. 短絡評価2.1 シナリオ例3. ブール変換4. 文字列を...
一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿...
bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorExce...
序文最近、MySQL に関するメモをいくつか尋ねる人がいたので、ブログ記事を書かなければなりません。...
目次1. 仮想マシンをダウンロードする2. 仮想マシンのインストールVMware のダウンロードとイ...