mysql利用binlog恢复数据
binlog日志对于mysql数据库来说是十分重要的,在数据丢失或错误变更的紧急情况下,我们往往用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分)
一、简单了解binlog MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。
- DDL Data Definition Language 数据库定义语言 主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。 - DML Data Manipulation Language 数据操纵语言 主要的命令是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
<span background-color=yellow>mysqlbinlog常见的选项有以下几个:</span> --start-datetime:从二进制日志中读取时间等于或晚于此参数值的事件 --stop-datetime:从二进制日志中读取时间等于或早于此参数值的事件 --start-position:从二进制日志中读取位置等于或大于此参数值的事件 --stop-position:从二进制日志中读取位置等于或小于此参数值的事件 一般来说开启binlog日志大概会有1%的性能损耗。
binlog日志包括两类文件 1)二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件 2)二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句select)语句事件。
二、开启binlog日志功能 1)编辑打开mysql配置文件/etc/my.cnf
vim /etc/my.cnf 在[mysqld] 区块添加 log-bin=mysql-bin 确认是打开状态(mysql-bin 是日志的基本名或前缀名)
注意:每次服务器(数据库)重启,服务器会调用flush logs;,新创建一个binlog日志!
2)重启mysql,使binlog生效