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

推薦する

Pure CSS と Flutter はそれぞれブリージング ライト効果を実現します (サンプル コード)

前回、非常に熱心なファンから、月を呼吸する光の効果にできるかどうか尋ねられました。月の大きさの写真が...

HTML ページ ヘッダー コード例の詳細な説明

知識ポイント1: ヘッダー情報にWebページのベースURLを設定するベース URL の本質は、ハイパ...

MySQL の JSON 挿入の問題

MySQL 5.7.8 以降では、JSON テキストでデータを効率的に取得できるネイティブ JSON...

CentOS に Memcached と PHP Memcached 拡張機能をインストールする

高性能分散メモリオブジェクトキャッシュシステムMemcachedについては、別の記事「Windows...

大きなオフセットによる MySQL 制限ページングが遅い理由と最適化ソリューション

MySQL では通常、limit を使用してページ上のページング機能を完了しますが、データ量が大きな...

IE ラベル LI テキスト折り返し問題について

私は長い間この問題に悩まされていましたが、検索してみたところ、実際にこの問題を解決した人がいることが...

jsはシングルクリックでテーブルを変更することを実装します

Pure jsは、参照用にワンクリックで編集可能なテーブル(トランスクリプトに似たもの)を実装してい...

重要なmysqlログファイルの概要

著者: 丁易出典: https://chengxuzhixin.com/blog/post/mysq...

Ubuntu 18.0.4 は mysql をインストールし、エラー 1698 (28000): ユーザー ''root''@''localhost'' のアクセスが拒否されましたを解決します

序文最近 Linux を学び、その後 Win から Ubuntu に変更しました。以前インストールし...

VMWARE で Centos8 仮想マシンをコピーすることによって発生する IP 損失の問題の解決策

VMwareでcentos8サービスをインストールしてコピーすると、次の問題が発生します。 コピー前...

docker compose を使用して consul クラスタ環境を構築する例

領事の基本概念サーバーモードとクライアントモードサーバー モードとクライアント モードは、consu...

Reactのref属性を深く理解する方法

目次概要1. Refsオブジェクトの作成1.1 React.createRef() 1.2React...

MySQLビューの原理と使用法の詳細な説明

この記事では、例を使用して MySQL ビューの原理と使用方法を説明します。ご参考までに、詳細は以下...

Vue でデータコレクターを設計する

目次シナリオ中核問題ステータス監視状態監視の利点国家監視の欠点復興実行のアイデア依存関係の収集要約す...

Reactでパスワード強度検出器を実装する方法

目次序文使用コンポーネントの記述データ構造分析プロセス分析基礎コードの分析他の要約する序文パスワード...