MySQL MGR 構築時の一般的な問題と解決策

MySQL MGR 構築時の一般的な問題と解決策

MGR構築プロセス中に発生したいくつかの障害

実際には、単一マシンのマルチインスタンス MGR 環境、同じネットワーク セグメントに複数のマシンがある MGR 環境、異なるネットワーク セグメントに複数のマシンがある MGR 環境の合計 3 つの MGR 環境を展開しました。展開プロセスは似ていますが、いくつかの違いもあります。ここでは、展開プロセスで発生した障害を参考までに示します。展開の問題を解決できれば幸いです。

01 よくある故障 1

[エラー] プラグイン group_replication が報告しました: 「このメンバーには、グループ内に存在するトランザクションよりも多くのトランザクションが実行されています。ローカル トランザクション: bb874065-c485-11e8-8b52-000c2934472e:1 > グループ トランザクション: 3db33b36-0e51-409f-a61d-c99756e90155:1-11」
[エラー] プラグイン group_replication が報告しました: 「メンバーにはグループに存在しないトランザクションが含まれています。メンバーはグループから退出します。」
[注記] プラグイン group_replication が報告しました: 「このメンバーをグループに強制的に参加させるには、group_replication_allow_local_disjoint_gtids_join オプションを使用できます」

解決:

プロンプトに従って、set global group_replication_allow_local_disjoint_gtids_join=ON; をオンにします。

02 よくある欠陥 2

[エラー] プラグイン group_replication が報告しました: 「このメンバーには、グループ内に存在するトランザクションよりも多くのトランザクションが実行されています。ローカル トランザクション: bb874065-c485-11e8-8b52-000c2934472e:1 > グループ トランザクション: 3db33b36-0e51-409f-a61d-c99756e90155:1-15」
[警告] プラグイン group_replication が報告しました: 「メンバーにはグループに存在しないトランザクションが含まれています。group_replication_allow_local_disjoint_gtids_join オプションにより、参加のみが許可されます。」
[注記] プラグイン group_replication が次のように報告しました: 「このサーバーは、プライマリ メンバー アドレス localhost.localdomaion:3306 を持つセカンダリ メンバーとして動作しています。」

解決:

この障害と障害 1 の違いは、この問題が発生したときに、パラメータ group_replication_allow_local_disjoint_gtids_join がオンに設定されていることです。この問題の解決策は、マスターのリセットを実行し、マスター ノードとスレーブ ノードでチャネルを再度開くことです。

チャネル 'group_replication_recovery' のマスターを MASTER_USER='rpl_user'、MASTER_PASSWORD='rpl_pass' に変更します。

03 よくある欠陥 3

このマシンをテストしているときに、次の問題が発生しました

[警告] マスター情報リポジトリに MySQL ユーザー名またはパスワード情報を保存することは安全ではないため、お勧めしません。START SLAVE の USER および PASSWORD 接続オプションの使用を検討してください。詳細については、MySQL マニュアルの「START SLAVE 構文」を参照してください。
 [エラー] チャネル 'group_replication_recovery' のスレーブ I/O: マスター '[email protected]:' への接続エラー - 再試行時間: 60 再試行回数: 1、エラー コード: 2005
 [エラー] プラグイン group_replication が報告しました: 「ドナー サーバーへの接続時にエラーが発生しました。group_replication_recovery チャネルの資格情報と performance_schema.replication_group_members テーブルのすべての MEMBER_HOST 列の値が正しく、DNS 解決可能であることを確認してください。」
 [エラー] プラグイン group_replication が報告しました: 「詳細については、performance_schema.replication_connection_status テーブルと、チャネル group_replication_recovery のスレーブ I/O のエラー ログ メッセージを確認してください。」
 [注記] プラグイン group_replication が報告しました: 「別のドナーとのグループ回復接続を再試行しています。試行 /」

解決:

この問題は、テスト環境内の 3 つのホストのホスト名が同じ名前に設定されているために発生します。ホスト名を変更すると、この問題は解決されます。

04 よくある欠陥 4

#オンラインフォーマル環境で操作すると、次のエラーが発生します。
mysql--root@localhost:(なし) ::>>GROUP_REPLICATIONを開始します。
エラー (HY000): サーバーはグループのアクティブ メンバーとして正しく構成されていません。詳細については、エラー ログを参照してください。
#ログ ファイルを確認すると、警告が 1 つだけ見つかります。
2019-02-20T07::30.233937Z [警告] プラグイン group_replication が報告しました: 「グループ レプリケーションでは、1 つ以上のアプライヤ スレッドを使用する場合、slave-preserve-commit-order を ON に設定する必要があります。」

解決:

mysql--root@localhost:(なし) ::>>「%preserve%」のような変数を表示します。
+--------------------------------+---------+
| 変数名 | 値 |
+--------------------------------+---------+
| スレーブ_preserve_commit_order | オフ |
+--------------------------------+---------+
 セット内の行数 (0.01 秒)
mysql--root@localhost:(なし) ::>>グローバルslave_preserve_commit_order=;を設定します。
クエリは正常、行は影響を受けました (0.00 秒)

05 よくある質問 5

2019-02-20T08::31.088437Z [警告] プラグイン group_replication が報告しました: '[GCS] IP アドレス 192.168.9.208 からの接続試行が拒否されました。 
アドレスは IP ホワイトリストにありません。
2019-02-20T08::32.088676Z [警告] プラグイン group_replication が報告しました: '[GCS] IP アドレス 192.168.9.208 からの接続試行が拒否されました。
 アドレスは IP ホワイトリストにありません。

解決:

これは、my.cnfのgroup_replication_ip_whitelistパラメータを設定することで解決できます。

06 よくある質問6

2019-02-20T08::44.087492Z [警告] プラグイン group_replication が「読み取りに失敗しました」と報告しました
2019-02-20T08::44.096171Z [エラー] プラグイン group_replication が報告しました: '[GCS] メンバーはグループに参加できませんでした。ローカル ポート: 24801'
2019-02-20T08::14.065775Z [エラー] プラグイン group_replication が報告しました: 「グループに参加した後、ビューの待機中にタイムアウトが発生しました

解決:

my.cnf の group_replication_group_seeds パラメータに、自身と内部通信ポートを除く他のグループ メンバーの IP アドレスのみを含めるように設定します。グループ メンバー全員の IP アドレスとして記述すると、このエラーが発生します。これは、同一ネットワーク セグメント内の MGR 展開方法とは若干異なります。

07 よくある質問7

 [エラー] プラグイン group_replication が報告しました: '[GCS] ローカル ポート: ' の oceanbase07: への接続を開くときにエラーが発生しました。'
 [エラー] プラグイン group_replication が報告しました: '[GCS] ローカル ポート: ' の oceanbase08: への接続を開くときにエラーが発生しました。'
 [エラー] プラグイン group_replication が報告しました: '[GCS] ローカル ポート: ' の oceanbase07: への接続を開くときにエラーが発生しました。'

解決:

ファイアウォールの固定ポートが開かれていません。ファイアウォールを開くと、この問題が解決します。

08 よくある質問8

[警告] マスター情報リポジトリに MySQL ユーザー名またはパスワード情報を保存することは安全ではないため、お勧めしません。START SLAVE の USER および PASSWORD 接続オプションの使用を検討してください。詳細については、MySQL マニュアルの「START SLAVE 構文」を参照してください。
 [エラー] チャネル 'group_replication_recovery' のスレーブ I/O: マスター コマンド COM_REGISTER_SLAVE が失敗しました: ユーザー 'rpl_user'@'%' のアクセスが拒否されました (パスワード使用: YES) (Errno: 1045)、Error_code: 1597
 [エラー] スレーブ I/O スレッドをマスターに登録できませんでした
 [注記] スレーブI/Oスレッドがチャネル 'group_replication_recovery' から終了し、ログ 'FIRST' まで読み取り、位置

解決:

ノードを見逃したユーザーは、安全のために、

ユーザー rpl_user@'%' を作成します。

'rpl_pass' によって識別される rpl_user@'%' に *.* のレプリケーション スレーブを許可します。

09 よくある質問9

 [エラー] リレー ログ './localhost-relay-bin.000011' (relay_log_pos) を開けませんでした。
 [エラー] リレー ログの初期化中に、インデックス ファイル './work_NAT_1-relay-bin. index' 内のリレー ログ情報に記載されているターゲット ログ ファイルが見つかりませんでした。
 [エラー] スレーブ: チャネル '' のマスター情報構造の初期化に失敗しました。そのレコードが 'mysql.slave_master_info' テーブルにまだ存在している可能性があります。削除することを検討してください。
 [エラー] リレー ログ './localhost-relay-bin-group_replication_recovery.000001' (relay_log_pos) を開けませんでした。
 [エラー] リレー ログの初期化中に、インデックス ファイル './work_NAT_1-relay-bin-group_replication_recovery.index' 内のリレー ログ情報に記載されているターゲット ログ ファイルが見つかりませんでした。
 [エラー] スレーブ: チャネル 'group_replication_recovery' のマスター情報構造の初期化に失敗しました。そのレコードが 'mysql.slave_master_info' テーブルにまだ存在している可能性があります。削除することを検討してください。
 [エラー] レプリケーション情報リポジトリの作成または回復に失敗しました。
 [エラー] チャネル '' のスレーブ SQL: スレーブはリポジトリからのリレー ログ情報構造の初期化に失敗しました。Error_code: 
 [エラー] /usr/local/mysql/bin/mysqld: スレーブがリポジトリからのリレー ログ情報構造を初期化できませんでした
 [エラー] チャネル '' のスレーブ スレッドを開始できませんでした

解決:

このエラーは、スレーブ ノードが何らかの理由でリレー ログの場所を見つけられないために発生します。スレーブをリセットする必要があります。

上記は、MySQL MGR の構築中に遭遇する一般的な問題と解決策の詳細です。MySQL MGR の構築の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL 8.0.15 で MGR シングル マスターと複数スレーブを構成する方法
  • MySQL MGR の利点は何ですか?
  • mysql MGR シングルマスターとマルチマスターモードの切り替えの知識ポイントの詳細な説明
  • mysql 8.0.18 mgr のインストールと切り替え機能
  • MySQL 8.0.18 はクローンプラグインを使用して MGR 実装を再構築します
  • MySQL 5.7 MGR シングルマスター決定マスターノード方式の詳細説明

<<:  Webデザインチュートリアル(1):手順と全体レイアウト

>>:  XHTML ブロックレベルタグの概要

推薦する

WeChatミニプログラムにナビゲーション機能を実装する方法

1. レンダリング2. 操作手順1. テンセントマップキーを申請する - 住所2. ミニプログラムの...

スクロールバーのスタイルを設定するための CSS サンプルコード

スクロール バーのスタイルを設定するための CSS 実装コードは次のとおりです。 •::-webki...

Docker コンテナのタイムゾーン エラーの問題

目次背景質問問題分析と解決策新たな問題問題分析と解決策背景node-schedule スケジュール ...

CSS3のvar()を使用して実行時にscss変数の値を変更する詳細な説明

var() の紹介と使用法詳細 (MDN) IEは無効ですが、他の主流のブラウザは有効ですvar()...

Nginx設定の原理と実装プロセスの詳細な説明https

Linuxユーティリティcertbotを使用してhttps証明書を生成するこのツールは Let&#...

HTML でランダムロールコーラーを実装するためのサンプルコード

この点呼装置は簡易版であり、自動停止の必要性を考慮していないため、点呼を開始した後、停止ボタンをクリ...

MySQLの浅いエントリと深いエグジットの原則についての簡単な説明

目次1. ページの概要2. 下限と上限3. ページディレクトリを使用する4. ページの実際の外観4....

パーソナライズされたクリエイティブなウェブサイトデザインの例 (30)

そこで、個性的なスタジオやフリーランスを表現する組み合わせを 30 個選びました。デザインを目立たせ...

CSS 位置固定左と右の二重配置実装コード

CSS 位置position 属性は、要素の配置タイプを指定します。位置プロパティには 5 つの値が...

Nginx URL 書き換えメカニズムの原理と使用例

URL 書き換えは、Web サイトの優先ドメインを決定するのに役立ちます。同じリソース ページの複数...

シンプルなプログレスバーを作成するための HTML+CSS

1. HTMLコードコードをコピーコードは次のとおりです。経験値: <span class=...

MySQL 8.0 のユーザーとロールの管理原則と使用方法の詳細

この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...

ウェブサイトのコードブロックのpreタグにコピーコードボタンコードを追加します

他のよりプロフェッショナルなブログ システムを参照すると、コード ブロックにコードのコピー ボタンが...

CSS 表示テーブルの適応的な高さと幅の問題の解決策

定義と使用法display プロパティは、要素が生成するボックスのタイプを指定します。例示するこの属...

CSS3で実装された6つの境界遷移効果

6つの効果実装コードhtml <h1>CSS 境界遷移</h1> <セ...