立即学习:https://edu.csdn.net/course/play/10084/221708?utm_source=blogtoedu
二进制日志
二进制日志包含所有描述数据库更改的事件(event),如表创建操作或更改表数据。不匹配任何行的DELETE。还包含有关每个语句获取更新数据的时间长度的信息。用于恢复和主从复制。
二进制日志文件作用目的
1、数据库恢复
2、主从架构复制
二进制日志文件位置及组成
1、缺省未开启,缺省文件名为host_name-bin
2、设置log_bin来设定位置以及文件名,缺省位于datadir目录
3、由文件名及索引文件组成,如下
mysqlbin.index mysqlbin.000001 mysqlbin.000002
开启二进制日志
shell > vim /etc/my.cnf
log_bin=/var/lib/mysql/mysqlbin ##移除关闭日志
server_id=1 ##需要增加此行,否则Bug#11763963
show variables like 'log_bin%';
log_bin ON
二进制日志的切换
切换目的:防止二级制日志文件过大,恢复时方便快速寻找对应二进制文件
切换方式:自动切换,手工切换
mysql> flush binary log;
shell> mysqladmin flush-logs
二进制日志的查看
mysql> show {binary | master } logs
mysql> show binlog events
[IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]
shell> strings /dir/binlog_name
shell> mysqlbinlog /dir/binlog_name
二进制日志的删除
--删除指定的二进制日志
PURGE {BINARY | MASTER}LOGS
{TO ‘log_name’ | BEFORE datatime_expr}
examples:
purge binary logs to 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';
--删除所有的二进制日志
RESET MASTER;
二进制日志自动清除
--修改日志保留期限参数
set global expire_logs_days=10;
二进制日志的暂停
--会话级别开启及关闭二进制日志
set sql_log_bin=0;
set sql_log_bin=1;