binlog
binlog是mysql的二进制日志, 用于记录mysql的运行状态. 根据记录的详细程度不同, 可以分为三种类型:
- row: 最详细的记录, 记录每一行变化, 包含所有DDL(建库建表)和DML(增删改)变更
- statement: 最精简的记录, 记录执行语句和上下文
- mixed: 混合方式, 少量行变化用row模式, 大量变化用statement模式
binlog主要的使用场景如下:
- 主从复制(高可用);
- 数据增量备份和恢复
mysqlbinlog
因为binlog是以二进制方式存储的, 想要阅读日志具体内容, 需要利用工具进行解析. mysqlbinlog是官方提供的日志解析工具. 用法如下:
mysqlbinlog [options] log_file '''
常用参数如下:
- -d —database: 指定数据库
- —start-position: 开始位置
- —stop-positon: 结束位置
- —start-datetime: 开始时间
- —stop-datetime: 结束时间
- -v -vv: 查看详细信息
可以将binlog导出到.sql文件进行恢复, 也可以直接利用管道恢复
mysqlbinlog binlog.000001 | mysql -u root -p
mysqlbinlog binlog.000001 > tmpfile
... edit tmpfile...
mysql -u root -p < tmpfile