mysql 日志管理

日志管理

1.错入日志

1.1:作用

mysql启动及工作过程中,状态/报错/警告。

1.2怎么配置?

mysql> select @@log_error;
默认是在datedir=/data/3306/data/hostname.err
####################
vim /etc/my.cnf 
log_error=/data/3306/data/mysql.log
重启生效

1.3如何查看错误日志

查看ERROR的上下文

2:二进制日志

2.1作用

数据恢复必备日志
主从复制依赖的日志

2.2怎么配置

2.2.1修改配置文件
vim /etc/my.cnf
server_id=6
log_bin=/data/binlog/mysql-bin
###先别重启
###先创建目录并授权
mkdir -p /data/binlog -p 
chown -R mysql.mysql /data/*
###然后重启数据库
#######################
查看二级制数据库的命令
mysqlbinlog mysql-bin.000001

2.3

二进制日志记录了什么?

除了查询类的语句,都会记录
索引数据库变更类的语句

2.3.1记录语句的种类
DDL  数据定义语言
DCL  数据控制语言
DML  数据操作语言
2.3.2不同语句的记录格式说明
select @@binlog_format;
###默认模式是row
DDL,DCL:直接以语句(statement)方式记录

DML语句:insert  update  delete
SBR : statement ,做什么记录什么

RBR : row 记录数据行的变化 

MBR : mixed 自动判断记录模式
######################
SBR和RBR的区别
SBR:statement , 做什么记录什么,记录的就是SQL。可读性强,日志量相对较少。日志记录可能不准确

RBR:记录数据行的变化,默认模式,也是我们推荐的,可读性差,日质量多。日志记录准确

2.3.3 binlog events (二进制日志时间)

1 简介
二进制日志内容以事件为最小记录单元
对于DDL和DCL,一个DDL语句就是一个事件。
对于DML(标准的事务语句):只记录已提交的事务的DML语句

begin;  事件1
a       事件2
b       事件3
commit; 事件4
2事件的构成
mysql[(none)]>create database oldgirl;  # 创建一个库
Query OK, 1 row affected (0.01 sec)
#################
mysqlbinlog /data/binlog/mysql-bin.000004 # 执行命令
or
mysqlbinlog --base64-output=decode-rows -v /data/binlog/mysql-bin.000004

# at 219
#190814 18:46:51 server id 6  end_log_pos 322 CRC32 0xa98122ba  Query   thread_id=3 exec_time=0 error_code=0
create database oldgirl
# at 219               事件开始的位置(position)
#190814 18:46:51       事件发生的时间
end_log_pos 322        事件结束的位置(position)
create database oldgirl  事件内容

2.3.4二进制日志的基本查看

1查看二进制日志的配置信息

``mysql> show variables like '%log_bin%';
+---------------------------------+------------------------------+
| Variable_name | Value |
+---------------------------------+------------------------------+
| log_bin | ON |
| log_bin_basename | /data/binlog/mysql-bin |
| log_bin_index | /data/binlog/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+------------------------------+
6 rows in set (0.00 sec)
`

#####2二进制日志基本信息

show binary logs;
show master status ; 推荐

#####3查看二进制日志的事件信息

show master status ;
show binlog events in 'mysql-bin.000001';

####2.4内容查看和截取
#####2.4.1 内容查看命令

简单查看
[root@db01 /data/binlog]# mysqlbinlog /data/binlog/mysql-bin.000003
人类可读查看
[root@db01 /data/binlog]# mysqlbinlog --base64-output=decode-rows -vv /data/binlog/mysql-bin.000003
查询帮助
[root@db01 /data/binlog]# mysqlbinlog --help
####################################
二进制日志的截取
修改配置文件,并生效
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
secure-file-priv=/tmp
log_error=/data/3306/data/mysql.log
innodb_flush_method=O_DIRECT
server_id=6
log_bin=/data/binlog/mysql-bin
[mysql]
socket=/tmp/mysql.sock
prompt=mysql[\d]>
####################################
语法介绍
--start-position
--stop-position

语法:
mysqlbinlog --start-position=xxx --stop-position=xxx /data/binlog/mysql-bin.000005>/data/bin.sql


2.4.3 恢复日志演练

(1) 准备数据(默认自动begin)

mysql[(none)]>create database binlog charset utf8mb4;
mysql[(none)]>use binlog;
mysql[binlog]>create table t1(id int)engine=innodb charset=utf8mb4;
mysql[binlog]>insert into t1 values(1),(2),(3);
mysql[binlog]>commit;
mysql[binlog]>insert into t1 values(11),(12),(13);
mysql[binlog]>commit;
mysql[binlog]>update t1 set id=10 where id>10;
mysql[binlog]>commit;

mysql[binlog]>select * from t1; #查询表
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 10 |
| 10 |
| 10 |
+------+
6 rows in set (0.00 sec)

(2) 用来测试,直接删库

mysql[binlog]>drop database binlog;
mysql[(none)]>select * from t1;
ERROR 1046 (3D000): No database selected

(3) 数据恢复

  1. 确认日志的起点和终点
    mysql[(none)]>show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000005 | 1845 | | | |
    +------------------+----------+--------------+------------------+-------------------+
    mysql[(none)]>mysql[(none)]>show binlog events in 'mysql-bin.000005';
    ...
    起点:219
    | mysql-bin.000005 | 219 | Query | 6 | 335 | create database binlog charset utf8mb4
    ...
    终点:1747
    | mysql-bin.000005 | 1747 | Query | 6 | 1845 | drop database binlog

(4) 截取日志(命令行执行)

[root@db01 ~]# mysqlbinlog --start-position=219 --stop-position=1747 /data/binlog/mysql-bin.000005>/data/bin.sql
[root@db01 ~]# ls /data/bin.sql
/data/bin.sql

(5) 恢复日志

mysql[(none)]>set sql_log_bin=0; 临时关闭当前会话的binlog记录,不影响其他会话日志记录
mysql[binlog]>source /data/bin.sql;
mysql[binlog]>set sql_log_bin=1;

(6) 查看恢复成功的库

mysql[binlog]>show tables;
+------------------+
| Tables_in_binlog |
+------------------+
| t1 |
+------------------+
1 row in set (0.00 sec)

mysql[binlog]>select * from t1;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 10 |
| 10 |
| 10 |
+------+
6 rows in set (0.00 sec)

mysqlbinlog -d binlog --start-position=219 --stop-position=1412 /data/binlog/mysql-bin.000006>/data/bin.sql
只过滤这个库

##









最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342