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 クローラーをブロックおよび禁止する方法

推薦する

MySQLデータベースを誤って削除した後にデータを回復するための手順

日々の運用・保守作業において、MySQL データベースのバックアップは重要です。ウェブサイトにとって...

mysql 10進データ型変換の実装

最近、次のデータ型のデータベースに遭遇しました:decimal(14,4)発生した問題は次のとおりで...

CSS と HTML とフロントエンド テクノロジーのレイヤー図

JavascriptとDOMの関係は非常に曖昧で、CSSやHTMLのフロントエンド技術層も理解してい...

Dockerを使用してプライベートGitLabを構築する2つの方法

最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...

Vueコンポーネントは、写真やビデオをアップロードするためのサンプルコードをカプセル化します

まず依存関係をダウンロードします: cnpm i -S vue-uuid ali-oss画像フィール...

Jenkins でユーザー ロールの権限を設定する方法

Jenkinsのユーザーロール権限の設定には、ロール戦略プラグインのインストールが必要です。 1.ロ...

JavaScript 関数のパフォーマンスを測定するさまざまな方法の比較

目次概要パフォーマンス.nowコンソール.time時間精度を短縮注意事項分割して征服する入力値に注意...

Linux で open-vswitch をインストールおよびアンインストールする方法

1. ソースコードからovsをコンパイルしてインストールします。依存関係をインストールします: # ...

MySQL の自動増分主キーに関する詳細な説明

目次特徴保存戦略自己増加の決定自動増分値の変更実行プロセス問題点自動増分ロックロック戦略バッチ挿入の...

Tomcatのクラスロードメカニズムのプロセスとソースコード分析

目次序文1. Tomcat クラスローダー構造図: 2. Tomcat のクラスロードプロセスの説明...

CSS3のall属性の使い方を理解する

1. 互換性以下のように表示されます。 互換性は問題ありません。IE を除き、他のブラウザは基本的に...

Linux リモートログイン実装チュートリアル分析

Linux は一般的にサーバーとして使用され、サーバーは一般的にコンピュータルーム内に置かれます。L...

Vuexはシンプルなショッピングカートを実装します

この記事では、参考までに、Vuex の具体的なコードを共有して、簡単なショッピングカートを実装します...

Vue の新しい組み込みコンポーネントの使用方法の詳細な説明

目次1. テレポート1.1 テレポートの紹介1.2 テレポートの使用1.3 プレビュー効果2. サス...

Linux で特殊文字のファイル名やディレクトリを削除する方法

inode番号でファイルを削除するまずls -iを使用して、削除するファイルのinode番号を見つけ...