美文网首页
mysql 日志管理

mysql 日志管理

作者: 北疆07 | 来源:发表于2019-08-14 21:35 被阅读0次

日志管理

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
只过滤这个库

##









相关文章

  • 27-日志管理

    本章内容 ◆ 日志介绍◆ 日志配置◆ 日志管理◆ 远程日志◆ 基于MYSQL的日志 日志介绍 rsyslog 启用...

  • MySQL-lesson06-日志管理

    MySQL-lesson06-日志管理 1.错误日志(log_error) 1.1 作用 1.2 错误日志配置 1...

  • MYSQL日志管理

    Mysql日志管理: 介绍:错误日志、二进制日志、慢日志 1、错误日志 配置方式:在配置文件中(my.cnf)中添...

  • 4. MySQL 日志管理

    5.6 日志管理 5.6.1 事务日志 事务日志默认保存在mysql的数据目录下, 记录的是redo_log re...

  • Mysql 慢查询日志

    Mysql 慢查询日志 慢查询日志 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中...

  • mysql日志管理

    日志文件对于一个服务器来说是非常重要的,它记录着服务器的运行信息,许多操作都会写日到日志文件,通过日志文件可以监视...

  • mysql日志管理

    mysql日志(默认存放在datadir): 同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。...

  • MySQL 日志管理

    一、 错误日志   没做特殊说明,所有配置都在my.cnf文件下的 [mysqld] 域下  包含了当mysqld...

  • MySQL日志管理

    一.MySQL日志简介 二.错误日志 作用:解决MySQL故障,排错 默认是否开启:开启 路径/名字:hostna...

  • mysql 日志管理

    日志管理: 1.错误日志: 作用:记录mysql从启动以来,所有的状态,警告,错误。 为我们定位数据库问题,提供帮...

网友评论

      本文标题:mysql 日志管理

      本文链接:https://www.haomeiwen.com/subject/ftutsctx.html