1. MySQL日志之binlog日志
1.1 mysql工具mysqlbinlog
mysqbinlog工具的作用是解析mysql的二进制binlog日志内容,把二进制的日志解析成可以在MySQL数据库里执行的SQL语句。
1.2 MySQL的·binlog日志是什么?
MySQL数据目录下的如下文件就是mysql的binlog日志
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.000005
mysql-bin.000006
mysql-bin.000007
mysql-bin.000008
. . . . . .. .
提示:要想生成binlog必须在配置文件中打开log-bin功能
[root@db01 3306]# greplog-bin /data/3306/my.cnf
log-bin =/data/3306/mysql-bin
1.3 mysql binlog日志功能开启[root@db01 3306]# vim /data/3306/my.cnf
log-bin = /data/3306/mysql-bin
1.4 mysql的binlog日志作用是什么?
mysql的binlog日志作用是用来记录mysql内部增删等对mysql数据库有更新的内容的记录(对数据的改动),对数据库查询的语句如show,select开头的语句,不会被binlog日志记录。用于数据库的主从复制,以及增量恢复。
测试题:
在MySQL数据库中,关于binlog日志,下列说法正确的是-----------(A)
A:依靠足够长度的binlog日志和定期的全备,我们可以恢复任何时间点的单表数据。
B:以mysql主从同步为例,binlog中会记录主数据库的所有操作。
C:以mysql主从同步为例,binlog中会记录主数据库的所有查询操作。
D:binlog通过cat和vi无法查看,但可以通过gedit查看。
1.5 mysqlbinlog工具解析binlog日志实践
默认情况binlog日志是二进制格式的,不能使用查看文本工具的命令查看,例如:cat、vi
[root@db01 3306]# file /data/3306/mysql-bin.000001
/data/3306/mysql-bin.000001: MySQL replication log
解析指定库的binlog日志
范例:利用mysqlbinlog-d参数解析指定库的binlog日志
[root@db01 3306]# oldboy /data/3306/mysql-bin.000001 -r oldboy.sql
[root@db01 3306]# ll oldboy.sql
-rw-r--r-- 1 root root 4731 Aug 31 04:36 oldboy.sql
[root@db01 3306]# cat oldboy.sql
结论:mysqlbinlog工具分库导出binlog,如果使用-d参数,那更新数据时,必须有usedatabase,才能分出指定库的binlog,例如:
use oldboy;
insert into test values(1,’oldboy’)
下面的写法就不行nsert into oldboy.test values(1,’oldboy’)
官方资料