2020-03-01日志管理

2020-03-01日志管理_第1张图片


1.错误日志(log_error)

记录启动\关闭\日常运行过程中,状态信息,警告,错误

 错误日志配置

默认就是开启的:/数据路径下/hostname.err

主要关注[ERROR],看上下文

vim/etc/my.cnf

log_error=/var/log/mysql.log

log_timestamps=system重启生效

binlog(binary logs):二进制日志 *****

 作用

(1)备份恢复必须依赖二进制日志

(2)主从环境必须依赖二进制日志

binlog配置 (5.7必须加server_id)

注意:MySQL默认是没有开启二进制日志的。

基础参数查看:开关:[(none)]>select @@log_bin;

日志路径及名字[(none)]>select @@log_bin_basename;

设置 服务ID号:[(none)]>select @@server_id;

二进制日志格式:[(none)]>select @@binlog_format;

双一标准之二:[(none)]>select @@sync_binlog;

创建日志目录

mkdir/data/binlog

chown-R mysql.mysql/data/binlog

修改配置文件



 重启数据库生效

[root@db01 mysql]#/etc/init.d/mysqld restart

2020-03-01日志管理_第2张图片


 binlog记录了什么?

记录数据库所有变更类的操作日志

DDL DCL DML

DDL :原封不动的记录当前DDL(statement语句方式)。

DCL :原封不动的记录当前DCL(statement语句方式)。

DML :只记录已经提交的事务DML

DML三种记录方式

binlog_format(binlog的记录格式)参数影响

(1)statement(5.6默认)SBR(statement based replication):语句模式原封不动的记录当前DML。

(2)ROW(5.7 默认值)RBR(ROW based replication):记录数据行的变化(用户看不懂,需要工具分析)

(3)mixed(混合)MBR(mixed based replication)模式 :以上两种模式的混合

2020-03-01日志管理_第3张图片

二进制日志记录单元

event 事件

二级制最小记录单元

DDL: create database ten;每个语句就是一个事件

DML:    

begin               事件1

a                      事件2

b                      事件3

commit;            事件4


2020-03-01日志管理_第4张图片


日志文件查看


 查看日志的开启情况


2020-03-01日志管理_第5张图片


2020-03-01日志管理_第6张图片


2020-03-01日志管理_第7张图片

查看二进制事件



2020-03-01日志管理_第8张图片


2020-03-01日志管理_第9张图片

binlog文件内容详细查看

mysqlbinlog--base64-output=decode-rows-vvv/data/binlog/mysql-bin.000003

mysqlbinlog--start-datetime='2019-05-06 17:00:00'--stop-datetime='2019-05-06 17:01:00'/data/binlog/mysql-bin.000004

基于Position号进行日志截取

核心就是找截取的起点和终点

--start-position=321

--stop-position=513

mysqlbinlog--start-position=219--stop-position=1347/data/binlog/mysql-bin.000003>/tmp/bin.sql

案例:使用binlog日志进行数据恢复模拟:

1.[(none)]>create database binlog charset utf8;

2.[(none)]>use binlog;[binlog]>create tablet1(idint);

3.[binlog]>insertintot1values(1);

[binlog]>commit;

[binlog]>insertintot1values(2);

[binlog]>commit;

[binlog]>insertintot1values(3);

[binlog]>commit;

4.[binlog]>drop database binlog;

恢复:[(none)]>show master status;

[(none)]>show binlog eventsin'mysql-bin.000004';

[root@db01 binlog]# mysqlbinlog--start-position=1227--stop-position=2342/data/binlog/mysql-bin.000004>/tmp/bin.sql

[(none)]>setsql_Log_bin=0; 临时关闭恢复时产生的日志

[(none)]>source/tmp/bin.sql

[(none)]>setsql_Log_bin=1;记得改回来

mysqlbinlog-d binlog/data/binlog/mysql-bin.000003  过滤到某个库来进行恢复

你可能感兴趣的:(2020-03-01日志管理)