笔记@MySQL——————二进制日志,事务日志
其他
2018-06-19 19:25:41
阅读次数: 2
事务日志:存放对数据库的更改的信息,包括没提交的
二进制日志:存放对数据库更改的信息,仅仅是提交了的信息
所以事务日志先更新,二进制日志后更新,
二进制日志可用于还原数据库,还原提交的日志信息,
二进制日志记录的是SQL语句,每一条日志都有标记,
二进制日志记录格式分三种:
基于‘语句’记录:statement ,记录语句,默认模式
基于‘行’记录:row ,记录数据,日志量较大(前提)
混合模式:mixed,让系统自行判断该基于那种方式,
配置记录格式:
show variables like '%binlog_format%';
二进制日志构成:
两种
日志文件:myslq|mariadb-bin.文件名后缀,二进制格式
比如:myslq-bin.000001
索引文件:myslq|mariadb-bin.index ,文本格式
启用二进制日志的变量:决定因素有两个,两个只要有一个没启用就不行,
sql_log_bin:默认是启用的(1),是否启用二进制日志,global/sa
log_bin=/PATH/BIN_LOG_FILE:默认是不启用off,要启用在配置文件里/etc/my.cnf添加log_bin=放二进制日志的路径
者两个文件变量必须都启动才能生成二进制日志
用watch -n 1 ls -l +放二进制日志的路径 ;可以跟随查看二进制日志文件变化的信息,
如果想临时不想记录二进制日志了把,sql_log_bin=off就可以
操作二进制日志
>show master logs; 查看二进制日志列表
>show binary logs; 查看二进制日志列表
>show master status; 二进制日志写到多少了(写到什么位置了)
在客户端命令行查看二进制文件:mysqlbinlog
命令格式:
mysqlbinlog [options] log_file...
--start-position=# 指定开始位置
--stop-position=#
--start-datetime=
--stop-datetime=
(时间格式:YYYY-MM-DD hh:mm:ss)
--base64-output[=name]
示例:
mysqlbinlog --start-position=6787 --stop-position=7527 /var/lib/mysql/mariadb-bin.000003
mysqlbinlog --start-datetime="2018-01-30 20:30:10" --stop-datetime="2018-01-30 20:35:22" mariadb-bin.000003
刷新二进制日志:flush logs
>flush logs; 新生成一个日志,
清除二进制日志:
purge {binary|master} logs {to ‘log_name’|pefore datetime_expr}
示例:
PURGE BINARY LOGS TO ‘mariadb-bin.000003’;删除3前日志
不包含03这个日志,只生成03前面的日志
,
转载自blog.csdn.net/lhl98765432/article/details/80709205