您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

使用mysqlbinlog提取二进制日志

2024/6/12 4:42:38发布25次查看
mysql binlog日志记录了mysql数据库从启用日志以来所有对当前数据库的变更。binlog日志属于二进制文件,我们可以从binlog提取出来
mysql binlog日志记录了mysql数据库从启用日志以来所有对当前数据库的变更。binlog日志属于二进制文件,我们可以从binlog提取出来生成可阅读的sql语句来重建当前数据库以及根据需要实现时点恢复或不完全恢复。本文主要描述了如果提取binlog日志,并给出相关示例。
有关binlog的介绍与描述请参考:mysql 二进制日志(binary log) 
1、提取mysqlbinlog的几种方式
a、使用show binlog events方式可以获取当前以及指定binlog的日志,不适宜提取大量日志。
b、使用mysqlbinlog命令行提取(适宜批量提取日志)。
2、演示show binlog events方式
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  :
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 */                              |
+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------+
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product