一, 初步了解 binlog
1,MySQL 的二进制日志 binlog 可以说是 MySQL 最重要的日志, 它记录了所有的 DDL 和 DML 语句(除了数据查询语句 select), 以事件形式记录, 还包含语句所执行的消耗的时间, MySQL 的二进制日志是事务安全型的.
a,DDL
Data Definition Language 数据库定义语言
主要的命令有 create,alter,drop 等, ddl 主要是用在定义或改变表 (table) 的结构, 数据类型, 表之间的连接和约束等初始工作上, 他们大多在建表时候使用.
b,DML
Data Manipulation Language 数据操纵语言
主要命令是 slect,update,insert,delete, 就像它的名字一样, 这 4 条命令是用来对数据库里的数据进行操作的语言
2,mysqlbinlog 常见的选项有一下几个:
a,startdatetime: 从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间
b,stopdatetime: 从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样
c,startposition: 从二进制日志中读取指定 position 事件位置作为开始.
d,stopposition: 从二进制日志中读取指定 position 事件位置作为事件截至
3, 一般来说开启 binlog 日志大概会有 1% 的性能损耗.
4,binlog 日志有两个最重要的使用场景.
a,mysql 主从复制: mysql replication 在 master 端开启 binlog,master 把它的二进制日志传递给 slaves 来达到 masterslave 数据一致的目的.
b, 数据恢复: 通过 mysqlbinlog 工具来恢复数据.
binlog 日志包括两类文件:
1), 二进制日志索引文件 (文件名后缀为. index) 用于记录所有的二进制文件.
2), 二进制日志文件 (文件名后缀为. 00000*) 记录数据库所有的 DDL 和 DML(除了数据查询语句 select)语句事件.
二, 开启 binlog 日志
1, 编辑打开 mysql 配置文件 / etc/my.cnf 在
[mysqld]区块添加
- logbin=mysqlbin(也可指定二进制日志生成的路径, 如: logbin=/opt/Data/mysqlbin)
- serverid=1
2, 重启 mysqld 服务
来源: http://www.bubuko.com/infodetail-2762529.html