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

推薦する

Mysql の追加、削除、変更、クエリステートメントのシンプルな実装

Mysql の追加、削除、変更、クエリステートメントのシンプルな実装追加されたレコード: テーブル名...

CocosCreator 入門チュートリアル: TS で初めてのゲームを作る

目次前提TypeScript と JavaScriptコードエディタの選択TypeScriptを学ぶ...

Docker Swarmの概念と使用法の詳細な説明

Docker Swarm は、Docker によって開発されたコンテナ クラスター管理サービスです。...

react+antd.3x は IP 入力ボックスを実装します

この記事では、IP入力ボックスを実装するための react+antd.3x の具体的なコードを参考ま...

Linuxダイナミックリンクライブラリの使用

通常のプログラムと比較すると、ダイナミック リンク ライブラリにはメイン関数がなく、一連の関数の実装...

Linux で txt を mysql にインポートする方法

序文昨日、小さなプロジェクトを書いていたときに、txt ドキュメントのデータを mysql データベ...

Docker mongoDB 4.2.1 をインストールし、Springboot ログを収集する詳細な手順

1: dockerにmongodbをインストールするステップ1: dockerにmongodbをイン...

ページコードの変更の効率を向上させ、HTML言語のコア知識を習得します。

ウェブサイトを構築するとき、HTML 言語は重要ではないと思われるかもしれませんが、実際には、基本的...

JavaScript の isPrototypeOf 関数

目次1. isPrototypeOf()例 1、オブジェクト クラス インスタンス:例 2: Hum...

Flexレイアウトを使用してヘッドの固定コンテンツ領域のスクロールを実現する方法

ページ ヘッダーの固定レイアウトは、以前は position:fixed を使用して実装されていまし...

MySQL 5.7を完全にアンインストールするための詳細な手順

この記事は主に、MySQLを再インストールする際のクリーンでないアンインストールのさまざまな問題をま...

MySQLの高可用性と高パフォーマンスのクラスタを構築する方法

目次MySQL NDB Clusterとはクラスター構築のための準備作業クラスターのデプロイを開始す...

マーキー要素は、スクロールするフォントや画像などの効果を実装します。

マーキー要素を使用すると、単純なフォント(画像など)のスライドやその他の効果を実現できます。コードを...

MySQL の 4 つのトランザクション分離レベルを例を使って分析する

序文データベース操作では、同時データ読み取りの正確性を効果的に保証するために、トランザクション分離レ...

JavaScript におけるさまざまなバイナリオブジェクトの関係の詳細な説明

目次序文さまざまなオブジェクト間の関係配列バッファ型付き配列Uint8ClampedArray文字間...