ホームページ データベース mysql チュートリアル 使用mysqlbinlog提取二进制日志_MySQL

使用mysqlbinlog提取二进制日志_MySQL

Jun 01, 2016 pm 01:01 PM
バイナリ ログ

MySQL binlog日志记录了MySQL数据库从启用日志以来所有对当前数据库的变更。binlog日志属于二进制文件,我们可以从binlog提取出来生成可阅读的SQL语句来重建当前数据库以及根据需要实现时点恢复或不完全恢复。本文主要描述了如果提取binlog日志,并给出相关示例。

有关binlog的介绍与描述请参考:MySQL 二进制日志(Binary Log)

 

1、提取mysqlbinlog的几种方式

 

2、演示show binlog events方式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

mysql> show variables like 'version';

+---------------+------------+

| Variable_name | Value      |

+---------------+------------+

| version       | 5.6.12-log |

+---------------+------------+

 

mysql> show binary logs;

+-----------------+-----------+

| Log_name        | File_size |

+-----------------+-----------+

| APP01bin.000001 |       120 |

+-----------------+-----------+

 

a、只查看第一个binlog文件的内容(show binlog events)

mysql> use replication;

Database changed

mysql> select * from tb;

+------+-------+

| id   | val   |

+------+-------+

|    1 | robin |

+------+-------+

 

mysql> insert into tb values(2,'jack');

Query OK, 1 row affected (0.02 sec)

 

mysql> flush logs;

Query OK, 0 rows affected (0.00 sec)

 

mysql> insert into tb values(3,'fred');

Query OK, 1 row affected (0.00 sec)

 

mysql> show binary logs;

+-----------------+-----------+

| Log_name        | File_size |

+-----------------+-----------+

| APP01bin.000001 |       409 |

| APP01bin.000002 |       363 |

+-----------------+-----------+

 

mysql> show binlog events;

+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------+

| Log_name        | Pos | Event_type  | Server_id | End_log_pos | Info                                               |

+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------+

| APP01bin.000001 |   4 | Format_desc |        11 |         120 | Server ver: 5.6.12-log, Binlog ver: 4              |

| APP01bin.000001 | 120 | Query       |        11 |         213 | BEGIN                                              |

| APP01bin.000001 | 213 | Query       |        11 |         332 | use `replication`; insert into tb values(2,'jack') |

| APP01bin.000001 | 332 | Xid         |        11 |         363 | COMMIT /* xid=382 */                               |

| APP01bin.000001 | 363 | Rotate      |        11 |         409 | APP01bin.000002;pos=4                              |

+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------+

-- 在上面的结果中第3行可以看到我们执行的SQL语句,第4行为自动提交

-- Author : Leshami

-- Blog   : http://blog.csdn.net/leshami

 

b、查看指定binlog文件的内容(show binlog events in 'binname.xxxxx')

mysql> show binlog events in 'APP01bin.000002';

+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------+

| Log_name        | Pos | Event_type  | Server_id | End_log_pos | Info                                               |

+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------+

| APP01bin.000002 |   4 | Format_desc |        11 |         120 | Server ver: 5.6.12-log, Binlog ver: 4              |

| APP01bin.000002 | 120 | Query       |        11 |         213 | BEGIN                                              |

| APP01bin.000002 | 213 | Query       |        11 |         332 | use `replication`; insert into tb values(3,'fred') |

| APP01bin.000002 | 332 | Xid         |        11 |         363 | COMMIT /* xid=394 */                               |

+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------+

 

c、查看当前正在写入的binlog文件(show master status\G)

mysql> show master status\G

*************************** 1. row ***************************

             File: APP01bin.000002

         Position: 363

     Binlog_Do_DB:

 Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

 

d、获取指定位置binlog的内容(show binlog events from)

mysql> show binlog events from 213;

+-----------------+-----+------------+-----------+-------------+----------------------------------------------------+

| Log_name        | Pos | Event_type | Server_id | End_log_pos | Info                                               |

+-----------------+-----+------------+-----------+-------------+----------------------------------------------------+

| APP01bin.000001 | 213 | Query      |        11 |         332 | use `replication`; insert into tb values(2,'jack') |

| APP01bin.000001 | 332 | Xid        |        11 |         363 | COMMIT /* xid=382 */                               |

| APP01bin.000001 | 363 | Rotate     |        11 |         409 | APP01bin.000002;pos=4                              |

+-----------------+-----+------------+-----------+-------------+----------------------------------------------------+

ログイン後にコピー

3、演示mysqlbinlog方式提取binlog

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

a、提取指定的binlog日志

# mysqlbinlog /opt/data/APP01bin.000001

# mysqlbinlog /opt/data/APP01bin.000001|grep insert

/*!40019 SET @@session.max_insert_delayed_threads=0*/;

insert into tb values(2,'jack')

 

b、提取指定position位置的binlog日志

# mysqlbinlog --start-position="120" --stop-position="332" /opt/data/APP01bin.000001

 

c、提取指定position位置的binlog日志并输出到压缩文件

# mysqlbinlog --start-position="120" --stop-position="332" /opt/data/APP01bin.000001 |gzip >extra_01.sql.gz

 

d、提取指定position位置的binlog日志导入数据库

# mysqlbinlog --start-position="120" --stop-position="332" /opt/data/APP01bin.000001 | mysql -uroot -p

 

e、提取指定开始时间的binlog并输出到日志文件

# mysqlbinlog --start-datetime="2014-12-15 20:15:23" /opt/data/APP01bin.000002 --result-file=extra02.sql

 

f、提取指定位置的多个binlog日志文件

# mysqlbinlog --start-position="120" --stop-position="332" /opt/data/APP01bin.000001 /opt/data/APP01bin.000002|more

 

g、提取指定数据库binlog并转换字符集到UTF8

# mysqlbinlog --database=test --set-charset=utf8 /opt/data/APP01bin.000001 /opt/data/APP01bin.000002 >test.sql

 

h、远程提取日志,指定结束时间

# mysqlbinlog -urobin -p -h192.168.1.116 -P3306 --stop-datetime="2014-12-15 20:30:23" --read-from-remote-server mysql-bin.000033 |more

 

i、远程提取使用row格式的binlog日志并输出到本地文件

# mysqlbinlog -urobin -p -P3606 -h192.168.1.177 --read-from-remote-server -vv inst3606bin.000005 >row.sql

ログイン後にコピー

4、获取mysqlbinlog的帮助信息(仅列出常用选项)

-d, --database=name

-f, --force-read

-h, --host=name

-l, --local-load=name

-p, --password[=name]

-P, --port=#

--protocol=name

-R, --read-from-remote-server|--read-from-remote-master=name

-r, --result-file=name

-s, --short-form

-S, --socket=name

--start-datetime=name

--stop-datetime=name

-j, --start-position=#

--server-id=#

--set-charset=name

-D, --disable-log-bin

-u, --user=name

-v, --verbose

-V, --version

 

 

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

win10のイベントID 6013とは何ですか? win10のイベントID 6013とは何ですか? Jan 09, 2024 am 10:09 AM

win10 のログは、ユーザーがシステムの使用状況を詳細に把握するのに役立ちます。自分の管理ログを探しているときに、ログ 6013 に遭遇したことがあるユーザーは多いでしょう。では、このコードは何を意味するのでしょうか。以下にそれを紹介しましょう。 win10 ログ 6013 とは: 1. これは通常のログです。このログの情報は、コンピュータが再起動されたことを意味するものではなく、最後の起動からシステムが実行されている時間を示します。このログは、毎日 1 回、12 時ちょうどに表示されます。システムの稼働時間を確認するにはどうすればよいですか? cmd に systeminfo と入力できます。その中に一行あります。

Win10 でのイベント 7034 エラー ログの問題のトラブルシューティング Win10 でのイベント 7034 エラー ログの問題のトラブルシューティング Jan 11, 2024 pm 02:06 PM

win10 のログは、ユーザーがシステムの使用状況を詳細に把握するのに役立ちます。多くのユーザーは、自分の管理ログを探しているときに、多くのエラー ログを見たことがあるはずです。そこで、どのように解決すればよいでしょうか。以下を見てみましょう。 win10 ログ イベント 7034 を解決する方法: 1. [スタート] をクリックして [コントロール パネル] を開きます。 2. [管理ツール] を見つけます。 3. [サービス] をクリックします。 4. HDZBCommServiceForV2.0 を見つけて、右クリックして [サービスの停止] を変更します。 「手動開始」へ

ThinkPHP6 でのログインの使用方法 ThinkPHP6 でのログインの使用方法 Jun 20, 2023 am 08:37 AM

インターネットと Web アプリケーションの急速な発展に伴い、ログ管理の重要性がますます高まっています。 Web アプリケーションを開発する場合、問題を見つけて特定する方法は非常に重要な問題です。ログ システムは、これらのタスクを達成するのに役立つ非常に効果的なツールです。 ThinkPHP6 は、アプリケーション開発者がアプリケーション内で発生するイベントをより適切に管理および追跡できるようにする強力なログ システムを提供します。この記事では、ThinkPHP6 のロギングシステムの使い方とロギングシステムの活用方法を紹介します。

iPhoneのヘルスケアアプリで薬の記録履歴を表示する方法 iPhoneのヘルスケアアプリで薬の記録履歴を表示する方法 Nov 29, 2023 pm 08:46 PM

iPhone では、ヘルスケア App に薬を追加して、毎日摂取する薬、ビタミン、サプリメントを追跡および管理できます。デバイスで通知を受信したときに、服用した薬またはスキップした薬を記録できます。薬を記録すると、どれくらいの頻度で薬を服用したか、または服用しなかったかを確認できるので、健康状態を追跡するのに役立ちます。この記事では、iPhone のヘルスケア アプリで選択した薬のログ履歴を表示する方法を説明します。ヘルスケア アプリで薬の記録履歴を表示する方法に関する短いガイド: ヘルスケア アプリ > 参照 > 薬 > 薬 > 薬の選択 > オプション&a に移動します。

二進数の計算方法 二進数の計算方法 Jan 19, 2024 pm 04:38 PM

2 進数演算は 2 進数に基づいた演算方法であり、その基本演算には加算、減算、乗算、除算が含まれます。 2 進算術には、基本的な演算に加えて、論理演算、変位演算、その他の演算も含まれます。論理演算には AND、OR、NOT などの演算が含まれ、変位演算には左シフト演算と右シフト演算が含まれます。これらの操作には、対応するルールとオペランド要件があります。

C言語を使用して2進数を16進数に変換するにはどうすればよいですか? C言語を使用して2進数を16進数に変換するにはどうすればよいですか? Sep 01, 2023 pm 06:57 PM

2 進数は 1 と 0 で表されます。 16 ビットの 16 進数体系は、2 進表現から 16 進表現に変換するために、{0,1,2,3…..9,A(10),B(11),…F(15)} となります。文字列 ID は、最下位側から始まるニブルと呼ばれる 4 ビットのチャンクにグループ化されます。各ブロックは、対応する 16 進数に置き換えられます。 16 進数と 2 進数の表現を明確に理解するために例を見てみましょう。 001111100101101100011101 3 E 5 B&N

Linuxシステムのログ閲覧コマンドを詳しく解説! Linuxシステムのログ閲覧コマンドを詳しく解説! Mar 06, 2024 pm 03:55 PM

Linux システムでは、次のコマンドを使用してログ ファイルの内容を表示できます。 tail コマンド: tail コマンドは、ログ ファイルの末尾の内容を表示するために使用されます。最新のログ情報を表示するための一般的なコマンドです。 tail [オプション] [ファイル名] 一般的に使用されるオプションは次のとおりです。 -n: 表示する行数を指定します。デフォルトは 10 行です。 -f: ファイルの内容をリアルタイムで監視し、ファイルが更新されたときに新しい内容を自動的に表示します。例: tail-n20logfile.txt#logfile.txt ファイルの最後の 20 行を表示 tail-flogfile.txt#logfile.txt ファイルの更新された内容をリアルタイムで監視 head コマンド: head コマンドは先頭を表示するために使用されます。ログファイルの

Golang でバイナリ ファイルを読み取るにはどうすればよいですか? Golang でバイナリ ファイルを読み取るにはどうすればよいですか? Mar 21, 2024 am 08:27 AM

Golang でバイナリ ファイルを読み取るにはどうすればよいですか?バイナリ ファイルは、コンピュータが認識して処理できるデータを含む、バイナリ形式で保存されたファイルです。 Golang では、いくつかのメソッドを使用してバイナリ ファイルを読み取り、必要なデータ形式に解析できます。 Golangでバイナリファイルを読み込む方法と具体的なコード例を紹介します。まず、OS パッケージの Open 関数を使用してバイナリ ファイルを開く必要があります。これにより、ファイル オブジェクトが返されます。それから私たちは作ることができます

See all articles