1. 問題の症状バージョン: MySQL 5.6、従来の binlog ファイルと pos 方式を使用して構成されたマスター/スレーブ レプリケーション構造を使用します。 インスタンスが再起動されると、マスター-スレーブ レプリケーション エラーが上図のように表示されます。 2. エラーの意味エラーは2つの部分に分かれています。 パート1
パート1 この部分はメインライブラリのDUMPスレッド関数から来ています mysql_binlog_send ->送信者.run() ->Binlog_sender::init ->Binlog_sender::check_start_file ((ファイル = open_binlog_file(&cache, m_linfo.log_file_name, &errmsg)) < 0)の場合 { 致命的なエラーを設定します。 1 を返します。 } サイズ = my_b_filelength(&cache); end_io_cache(&cache); mysql_file_close(ファイル、MYF(MY_WME)); (m_start_pos > サイズ)の場合 { set_fatal_error("クライアントがマスターにレプリケーションの開始を要求しました" "位置 > ファイルサイズ"); 1 を返します。 } キーとなるのは 2 つの値 m_start_pos と size です。m_start_pos はライブラリから読み取る必要がある位置から取得されます。そして、size はこの binlog ファイルのサイズなので、IO スレッドに必要な POS ポイントがこの binlog ファイルのサイズより大きい場合は当然間違っていることが容易に理解できます。 パート2 この部分もDUMPスレッドから来ています mysql_binlog_send ->送信者.run() ->Binlog_sender::init ->while (!has_error() && !m_thd->killed) #正常であれば、ここでループを開始し、binlog イベントを読み取ります。エラーがある場合は、次のロジックを続行します。#読み取りエラーがある場合は、エラーを報告します my_snprintf(error_text, sizeof(error_text), "%s; %lld の最初のイベント '%s'、" "%lld に '%s' から読み取られた最後のイベント" "%lld で '%s' から読み取られた最後のバイト。", m_errmsg、 m_start_file、m_start_pos、m_last_file、m_last_pos、 log_file、my_b_tell(&log_cache)); ここでは主に m_start_pos と m_last_pos に注目します。実際、m_start_pos はスレーブ ライブラリから読み取る必要のある位置情報であり、これは以前のエラー レポートと一致しています。また、m_last_pos はダンプ スレッドから取得され、最後に読み取られた位置です。明らかに、ここでは一度も読み取られていないため、位置は初期位置 4 です。 3. 考えられる原因分析の結果、最も可能性の高い理由は sync_binlog に関連していると思われます。 1 に設定しないと、OS キャッシュがディスクにフラッシュされない可能性があります。メイン ライブラリ サーバーがクラッシュして直接再起動すると、この問題が簡単に発生する可能性があります。 簡単に Google 検索してみたところ、これらのエラーのほとんどは、サーバーのクラッシュと sync_binlog が 1 に設定されていないことが原因であることがわかりました。 これも私たちの主張を証明しています。 最後に、問題のあるデータベースのメイン データベースが実際に double 1 に設定されていないことを確認しました。 この小さな事例を通じて、ダブル 1 を設定することの重要性をより深く認識しました。 要約するこれで、MySQL 5.6 マスター スレーブ エラー レポートに関するこの記事は終了です。MySQL 5.6 マスター スレーブ エラー レポートに関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: jQuery キャンバスで画像検証コード例を描画する
>>: CSS @font-face パフォーマンス最適化の詳細な理解
目次序文実装のアイデア効果:使用:メインソースコード:序文多くのケースを見た結果、単純な観点からは、...
ウィンドウ環境にmysql5.7.21をインストールします。詳細は次のとおりです。 1. MySQL...
目次序文1. ファントムリーディングとは何ですか? 2. ファントムリーディングの問題点は何ですか?...
目次JVM クラスローダーTomcat クラスローダークラスを検索ロードクラスクラスをロードしようと...
1. transform 属性を使用して、画像を拡大せずに表示します (パスの問題は必要に応じて修正...
需要背景最近、Vue を使用してフロントエンド エンジニアリング システムと組み合わせ、以前のデモを...
各データベース内の各テーブルのサイズをカウントすることは、データ ガバナンスの最も単純な要件の 1 ...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
目次ユーティリティ: vue での使用:説明する:画像安定化:スロットル:ユーティリティ: // 手...
Shtml と asp は似ています。shtml という名前のファイルでは、asp の命令と同様に、...
どのような製品について言及したいですか?最近、ユーザーがマーケティングの変化をよりよく観察できるよう...
背景: parseInt(0.006) または parseInt(0.0006) は 0 という値を...
MySQL データベースにとって binlog バイナリ ログがどれほど重要であるかについては詳し...
この記事では、MySQL の自動作成時刻と変更時刻を設定する方法について説明します。ご参考までに、詳...
目次序文1. クロージャとは何ですか? 1.1 クロージャは条件コードを満たす1.2 クロージャ生成...