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 パフォーマンス最適化の詳細な理解
結果から判断すると、タイトルを定義するための固定パターンはなく、すべてむしろランダムな感じがします。...
序文実稼働環境で Docker を使用する場合、多くの場合、データを複数のコンテナ間で永続化または共...
1. まず、Springbootを使用して簡単なDubboテストプログラムを構築し、関連する依存関係...
同じサーバーで、Docker を使用して Mysql のマスター スレーブ同期設定をシミュレートしま...
1. TEXTとBLOBの違いTEXT ファミリと BLOB ファミリの唯一の違いは、BLOB 型は...
序文<router-link> タグは、Vue アプリ内のさまざまなページ間を移動するた...
1. Dockerネットワークを作成する docker ネットワーク作成 kong-net 2. デ...
この記事の例では、参考までに虫眼鏡コンポーネントを開発するためのjsの具体的なコードを共有しています...
誰もが自分の Web ページの背景にふさわしい画像を見つけることに悩むことが多いと思います。これは事...
会社のウェブサイトのアクセス数が増えてくると(1日10万PV以上)、当然MySQLがボトルネックにな...
序文データベースの実際の使用では、データの書き込みや読み取りを同時に行わないことが必要な状況によく遭...
目次1. 公式ドキュメント2. Vue CLIプロジェクトを作成する1. Vue CLIをインストー...
目次1. 開発前にエンティティの種類を決定する2. インターフェースをリクエストするときは、使用する...
時間が経つにつれて、多くの人が XHTML の使い方を知らないことに気づきました。普通の初心者だけで...
例:例として、Python コード loop_hello.py を使用します。このコードは、ループ回...