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 ブロックレベルタグの概要

推薦する

Docker データ ストレージ tmpfs マウントの詳細な説明

この記事を読む前に、ボリュームとバインドマウントの基本を理解しておいてください。詳細については、次の...

K8S クラスターを構築し、Hyper-V で Docker をインストールする方法

Win10 システムをインストールしていて、k8s クラスターを構築する場合、Win10 に付属する...

WeChatミニプログラムで検索キーワードを強調表示するサンプルコード

1. はじめにプロジェクトで要件に遭遇したら、データを検索してキーワードを強調表示します。要件を受け...

Reactは複雑な検索フォームの展開と折りたたみ機能を実装します

時間に余裕を持って、過去を忘れましょう。前のセクションでは、[検索] フォームとクエリおよびリセット...

ナビゲーションデザインと情報アーキテクチャ

<br />ナビゲーションについて話すときは、ほとんどの場合、ナビゲーションがコンテンツ...

VUE ユニアプリライフサイクルに関する簡単な説明

目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...

MySQLは変数を使用してさまざまなソートを実装します

コアコード -- 以下では、MySQLでのソート列の実装を示します -- テストデータ CREATE...

Docker ベースの Redis マスタースレーブ クラスタの実装

目次1. Redisイメージを取得する2. 6つのRedisコンテナを作成する3. Redisコンテ...

CSS クロスフェード() を使用して半透明の背景画像効果を実現するサンプルコード

1. 要件の説明特定の要素については、背景background-imageを半透明にしたいが、テキス...

Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順

序文プロジェクト要件: Dockeridea に Docker プラグインをインストールし、Dock...

Nginx+ModSecurity セキュリティモジュールの導入

目次1. ダウンロード2. 展開1.Nginxのデプロイメント2. ModSecurityの展開3....

Docker+Selenium Grid に基づく技術アプリケーションをテストするためのサンプル コード

Selenium Grid の紹介Selenium Grid のいくつかの新しい機能は、今後リリース...

Docker Tomcat のアクセス インターフェイスが表示されないのはなぜですか?

質問:オリジン サーバーはターゲット リソースの表現を見つけることができないか、既存の表現を公開した...

Reactコンポーネントをフルスクリーンにする方法

導入この記事は、 React + antdをベースにして、完全な全屏demoを紹介します。その理由は...

Vue axios インターセプターは、繰り返しリクエストのキャンセルによく使用されます。

導入前回の記事では、axios のシンプルなカプセル化と、axios インターセプターの適用シナリオ...