MySQL マスターライブラリ binlog (master-log) とスレーブライブラリ relay-log 間のコードの詳細な説明

MySQL マスターライブラリ binlog (master-log) とスレーブライブラリ relay-log 間のコードの詳細な説明

メインライブラリのバイナリログ:

# 2420 で
#170809 17:16:20 サーバー ID 1882073306 end_log_pos 2451 CRC32 0x58f2db87 Xid = 32880
専念 /*!*/;
# 2451 で
#170814 11:07:18 サーバー ID 1882073306 end_log_pos 2528 CRC32 0x40774a4b クエリ thread_id=92 exec_time=0 error_code=0
タイムスタンプを 1502680038/*!*/ に設定します。
始める
//*!*/;
# 2528 で
# 2560 で
#170814 11:07:18 サーバーID 1882073306 end_log_pos 2560 CRC32 0x7bdf274b Intvar
INSERT_IDを107/*!*/に設定します。
#170814 11:07:18 サーバー ID 1882073306 end_log_pos 2669 CRC32 0x68e441c8 クエリ thread_id=92 exec_time=0 error_code=0
タイムスタンプを 1502680038/*!*/ に設定します。
t2 (名前) 値に挿入 ('a100')
//*!*/;
# 2669 で
# 2701 で
#170814 11:07:27 サーバーID 1882073306 end_log_pos 2701 CRC32 0xcf89b910 Intvar
INSERT_IDを108/*!*/に設定します。
#170814 11:07:27 サーバー ID 1882073306 end_log_pos 2810 CRC32 0x78466d7b クエリ thread_id=92 exec_time=0 error_code=0
タイムスタンプを 1502680047/*!*/ に設定します。
t2(名前)値('a200')に挿入
//*!*/;
# 2810 で
# 2842 で
#170814 11:07:30 サーバーID 1882073306 end_log_pos 2842 CRC32 0x1e5a0847 Intvar
INSERT_IDを109/*!*/に設定します。
#170814 11:07:30 サーバー ID 1882073306 end_log_pos 2951 CRC32 0xebeb947c クエリ thread_id=92 exec_time=0 error_code=0
タイムスタンプを 1502680050/*!*/ に設定します。
t2(名前)値('a300')に挿入
//*!*/;
# 2951 で
#170814 11:07:34 サーバー ID 1882073306 end_log_pos 2982 CRC32 0x6436ad60 Xid = 32934
専念 /*!*/;

ライブラリのリレーログから:

/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 1 に設定します*/;
/*!40019 @@session.max_insert_delayed_threads を 0 に設定します*/;
/*!50003 @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0 に設定*/;
区切り文字 /*!*/;
# 4時
#170809 17:17:24 サーバー ID 1882083306 end_log_pos 120 CRC32 0x5df4221c 開始: binlog v 4、サーバー v 5.6.23-72.1-log 作成 170809 17:17:24
# 120 で
#700101 8:00:00 サーバー ID 1882073306 end_log_pos 0 CRC32 0x0b8a412f test-mysql-bin.000116 にローテーション pos: 2451
# 172 で
#170809 16:28:12 サーバー ID 1882073306 end_log_pos 0 CRC32 0xd0d3bf30 開始: binlog v 4、サーバー v 5.6.23-72.1-log 作成 170809 16:28:12
# 288 で
#170814 11:07:18 サーバー ID 1882073306 end_log_pos 2528 CRC32 0x40774a4b クエリ thread_id=92 exec_time=0 error_code=0
タイムスタンプを 1502680038/*!*/ に設定します。
@@session.pseudo_thread_id=92/*!*/ を設定します。
@@session.foreign_key_checks=1、@@session.sql_auto_is_null=0、@@session.unique_checks=1、@@session.autocommit=1/*!*/ を設定します。
@@session.sql_mode を 1073741824/*!*/ に設定します。
@@session.auto_increment_increment=1、@@session.auto_increment_offset=1/*!*/ を設定します。
/*!\C utf8 *//*!*/;
@@session.character_set_client=33、@@session.collat​​ion_connection=33、@@session.collat​​ion_server=33/*!*/ を設定します。
@@session.lc_time_names=0/*!*/ を設定します。
@@session.collat​​ion_database=DEFAULT/*!*/ を設定します。
始める
//*!*/;
# 365 で
# 397 で
#170814 11:07:18 サーバーID 1882073306 end_log_pos 2560 CRC32 0x7bdf274b Intvar
INSERT_IDを107/*!*/に設定します。
#170814 11:07:18 サーバー ID 1882073306 end_log_pos 2669 CRC32 0x68e441c8 クエリ thread_id=92 exec_time=0 error_code=0
`db1`/*!*/ を使用します。
タイムスタンプを 1502680038/*!*/ に設定します。
t2 (名前) 値に挿入 ('a100')
//*!*/;
# 506 で
# 538 で
#170814 11:07:27 サーバーID 1882073306 end_log_pos 2701 CRC32 0xcf89b910 Intvar
INSERT_IDを108/*!*/に設定します。
#170814 11:07:27 サーバー ID 1882073306 end_log_pos 2810 CRC32 0x78466d7b クエリ thread_id=92 exec_time=0 error_code=0
タイムスタンプを 1502680047/*!*/ に設定します。
t2 (名前) 値に挿入 ('a200')
//*!*/;
# 647 で
# 679 で
#170814 11:07:30 サーバーID 1882073306 end_log_pos 2842 CRC32 0x1e5a0847 Intvar
INSERT_IDを109/*!*/に設定します。
#170814 11:07:30 サーバー ID 1882073306 end_log_pos 2951 CRC32 0xebeb947c クエリ thread_id=92 exec_time=0 error_code=0
タイムスタンプを 1502680050/*!*/ に設定します。
t2 (名前) 値に挿入 ('a300')
//*!*/;
# 788 で
#170814 11:07:34 サーバー ID 1882073306 end_log_pos 2982 CRC32 0x6436ad60 Xid = 32934
専念 /*!*/;

リレー ログの次の行に注意してください。

#700101 8:00:00 サーバー ID 1882073306 end_log_pos 0 CRC32 0x0b8a412f test-mysql-bin.000116 にローテーション pos: 2451

これは、リレー ログに、位置 2451 から始まるメイン データベース test-mysql-bin.000116 の情報が格納されていることを示します。

具体的な対応を見てみましょう。

メインライブラリのバイナリログは次のとおりです。

# 2560 で
#170814 11:07:18 サーバーID 1882073306 end_log_pos 2560 CRC32 0x7bdf274b Intvar
INSERT_IDを107/*!*/に設定します。
#170814 11:07:18 サーバー ID 1882073306 end_log_pos 2669 CRC32 0x68e441c8 クエリ thread_id=92 exec_time=0 error_code=0
タイムスタンプを 1502680038/*!*/ に設定します。
t2 (名前) 値に挿入 ('a100')
//*!*/;
# 2669 で

対応するスレーブ ライブラリ relay-log には次の行があります。

# 397 で
#170814 11:07:18 サーバーID 1882073306 end_log_pos 2560 CRC32 0x7bdf274b Intvar
INSERT_IDを107/*!*/に設定します。
#170814 11:07:18 サーバー ID 1882073306 end_log_pos 2669 CRC32 0x68e441c8 クエリ thread_id=92 exec_time=0 error_code=0
`db1`/*!*/ を使用します。
タイムスタンプを 1502680038/*!*/ に設定します。
t2 (名前) 値に挿入 ('a100')
//*!*/;
# 506 で

また、show slave status\G の次の行の関係にも注意してください。

マスターログファイル: test-mysql-bin.000117
読み取りマスターログ位置: 774

上記の2行はメインライブラリに対するIOスレッドを表しています。

リレーログファイル: リレーログ.000038
リレーログ位置: 723

上記の2行は、スレーブライブラリに対するSQLスレッドを表します。

リレーマスターログファイル: test-mysql-bin.000117
実行マスターログポジション: 555

上記の2行は、メインライブラリに対するSQLスレッドを表しています。

Relay_Log_Pos: 723 と Exec_Master_Log_Pos: 555 に対応する SQL ステートメントは一貫しています。

要約する

以上が、MySQL マスターライブラリ binlog とスレーブライブラリ relay-log の関係についての詳細なコード解説に関するこの記事の内容のすべてです。皆様のお役に立てれば幸いです。興味のある方は、MySQL の binlog_format モードと構成の詳細な分析、いくつかの重要な MySQL 変数、MySQL の準備原則の詳細な説明などを参照してください。質問がある場合は、いつでもメッセージを残すことができます。誰でもコミュニケーションと議論を歓迎します。

以下もご興味があるかもしれません:
  • mysql binlog (バイナリログ) を表示する方法
  • MySQL でデータ復旧に binlog を使用する方法
  • Mysql Binlogデータの表示方法の詳細な説明
  • MySQL の binlog_format モードと設定の詳細な分析
  • MySQLの誤操作後にbinlog2sqlを使用して素早くロールバックする方法の詳細な説明
  • mysql binlog ログを正しくクリーンアップする 2 つの方法
  • MySQL binlog を開く手順

<<:  JSはビデオの再生速度を制御するための簡単なサンプルコードを実装します

>>:  Nginx サーバーで Web クローラーをブロックおよび禁止する方法

推薦する

DOM操作テーブルの例(DOMはテーブルを作成します)

1. HTML タグを使用してテーブルを作成します。コードをコピーコードは次のとおりです。 <...

HTML テーブルの行間および列間の操作 (rowspan、colspan)

一般的に、<td> 要素の colspan 属性はセルの列間操作を実装するために使用され...

div ボックス モデルの使用経験の概要

ボックスモデルの計算<br />マージン + ボーダー + パディング + コンテンツC...

bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorException の解決方法

bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorExce...

JavaScript オブジェクトの 3 つのプロパティ

目次1. 書き込み可能: 書き込み可能2. 列挙可能: 列挙可能3. 設定可能: 設定可能オブジェク...

CSSはコンテンツの高さが足りない場合にフッターを自動的に下部に固定します

UI カットのプロセスでは、ページはヘッダー、コンテンツ、フッターの 3 つの部分で構成されることが...

Vue-cliはプロジェクトを作成し、プロジェクト構造を分析します

目次1. ディレクトリを入力してプロジェクトを作成する2. 必要な設定項目を選択します2.1 Vue...

JavaScript を使用してソートアルゴリズムを実装する方法

目次バブルソート選択ソート挿入ソート要約するバブルソートバブルソートは、シーケンスの右側から始めて、...

MySQL マスタースレーブ同期メカニズムと同期遅延問題追跡プロセス

序文DBA として、仕事中に MySQL マスターとスレーブの同期遅延の問題に遭遇することがよくあり...

統計量に対するmySql SQLクエリ操作

余計なことは言わないで、コードだけ見てみましょう〜 プロジェクト番号を選択、 sum(case wh...

光るテキストとちょっとしたJS特殊効果を実現するCSS

実装のアイデア: CSSでtext-shadowを使用してテキストの光る効果を実現します効果画像: ...

MySQL の CPU 負荷が高い問題のトラブルシューティング

MySQL による CPU 負荷の上昇今日の午後、MySQL によってサーバーの負荷が高くなる問題を...

JavaScript オブジェクトを比較する 4 つの方法

目次序文参考比較手動比較浅い比較徹底比較要約する序文JavaScript でプリミティブ値を比較する...

Linuxはjoin -a1を使用して2つのファイルを結合します

次の2つのファイルを結合するには、それらを結合して1.txtに結合します。 # 1.txt ジェリー...