数据库的binlog

什么是binlog

MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),还有语句执行消耗的时间。
binlog日志是二进制格式的,它不能使用查看文本工具的命令(比如,cat,vi等)查看,使用mysqlbinlog解析查看
补充:

  • DDL(Data Definition Language 数据库定义语言 )
    主要的命令有create、alter、drop等,ddl主要是用在定义或改变表(table)的结构,数据类型,表之间的连接和约束等初始工作上,他们大多在建表时候使用。
  • DML(Data Manipulation Language 数据操纵语言)
    主要命令是select、update、insert、delete是用来对数据库里的数据进行操作的语言。

binlog的格式

binlog有三种格式:Statement、Row以及Mixed。
–基于SQL语句的复制(statement-based replication,SBR),
–基于行的复制(row-based replication,RBR),
–混合模式复制(mixed-based replication,MBR)。

binlog使用场景

binlog日志有两个最重要的使用场景。

  1. mysql主从复制:mysql replication在master端开启binlog,master把它的二进制日志传递给slaves来达到master-slave数据一致的目的。
  2. 数据恢复:通过mysqlbinlog工具来恢复数据。

binlog日志

在mysql的配置文件my.cnf中,增加log_bin参数即可开启binlog日志,也可以通过赋值来指定binlog日志的文件名:
(1)编辑打开mysql配置文件/application/mysql3307/my.cnf在mysqld的区块添加

log-bin=mysql-bin(也可指定二进制日志生成的路径,如:log-bin=/opt/Data/mysql-bin)
server-id=1
binlog_format=MIXED(加入此参数才能记录到insert语句)

(2)开启mysqld服务

 service mysqld restart

(3)查看binlog日志是否开启

mysql> show variables like 'log_%';

(3)查看最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值。

mysql> show master status;

(4)查看第一个日志的内容

mysql> show binlog events;

(5)查看指定binlog文件的内容

 mysql> show binlog events in 'mysql-bin.000002';

(6) 清空所有binlog

 mysql> reset master;

(7)刷新log日志,立刻产生一个新编号的binlog日志文件

 mysql>flush logs;

(8)查看binlog的格式

show variables like 'binlog_format';

你可能感兴趣的:(数据库的binlog)