您的位置:首页 > 数据库 > MySQL

mysql日志设置

2015-07-09 10:22 656 查看

mysql文件种类

参数文件my.cnf

日志文件

socket文件

pid文件

mysql表结构文件

存储引擎文件

参数文件my.cnf

Mysql实例启动时,会先读取配置参数文件my.cnf

寻找my.cnf位置

1. 默认情况:
mysql --help|grep my.cnf


2. 后台进程去找:
ps –eaf|grep mysql


3. 全局搜索:
find / -name my.cnf


可以用vi直接维护修改里面的参数值

1. dynamic 动态修改参数:可以通过set进行实时修改

set global 参数=值 全局;

set 参数=值 当前会话 ,重启都无效;

2. static,只能在my.cnf里面修改,需要restart生效

日志文件

1. error日志

查看
show variables like 'log_error';


My.cnf里面设置 :
log-error=/usr/local/mysql/mysqld.log


查看alert信息、error信息、warning信息

2. binary日志

binary日志主要记录的是对数据库已经执行完了的操作,但不包括select show操作,因为这类操作对数据库没有任何变动。如果想看select、show就可以去general log查看。

binary生效:

my.cnf配置:
log-bin =/home/data/mysql/binlog/mysql-bin.log


Mysql-bin.index记录的是以max_binlog_size为单位的binlog日志文件索引

binlog日志参数:

max_binlog_size单个文件最大值(默认1g,但是在电商行业订单系统通常是64m,方面快速复制,这也是比较通用的大小)、

binlog_cache_size(在使用innodb引擎的时候,所有未提交事务操作都会先放到binlog缓存中,等待事务提交的时候就会刷到binlog二进制日志文件中。Session级的内存区,每个session都会分配size大小的内存,默认32k可以提高到1m左右)、

sync_binlog

binlog-do-db(需要写入日志的库)、

binlog-ingore-db(忽略写入日志的库)、

log-slave-update(当需要在从库上搭建下一阶从库的时候需要,因为从库一般是不能写入的日志。开启后可以搭建环形)

binlog-format日志格式

Statement(不需要记录变化数据,只需要记录影响变化的sql语句insert update delete create等,减少binlog日志量,节约io资源,日志传输的时候提高网络传输速率)

row(行模式:不记录每一句sql ,记录的是数据的变化,通过insert update方式记录数据点,日志量会非常大)、

mixed(混合模式:一般语句操作就记录语句,函数操作等记录行的变化。综合语句和行模式优点)

my.cnf里面设置 binlog_format = MIXED; expire_logs_days = 7 (清理过期的日志,天为单位) ;

中小型电商用mixed模式,大型电商用row模式,通过万兆网卡保证主从数据一致性,非电商非互联网用statement足够了。

主要作用:恢复数据+复制(主从同步)

3. slow 日志

查看是否开启:

show variables like 'slow_query_log%';


show variables like 'long_query_time’;


long_query_time=0
(记录所有sql可以做审计)

show variables like 'log_queries_not_using_indexes';


使用mysqldumpslow来进行分析

Slow_log表,也可以将慢查询日志放入一张表里面

show variables like ‘log_output’;
查看如果是file就存放在slow log里面,如果是table就在slow_log表里面。

4. general日志

日志开启方法:

show variables like '%general_log%';


set [global] general_log=ON


通过tail –f直接查看日志内容,general适用于数据库审计 + 问题排查跟踪 (损失3%-5%性能)

5. redo文件

Innodb采用日志先行的规则,默认情况下,会有2个重做日志文件

ib_logfile0 和 ib_logfile1(一组)

记录了innodb存储引擎的事务日志,当实例失败,比如master掉电等等,innodb就会通过redo文件恢复数据库到掉电前的那一刻,以此保证数据完整性。重做日志至少是一组文件,可以通过将redo文件放到不同磁盘上提升数据库一点性能。

show variables like ‘innodb%log%’;


查看redo参数其中:innodb_log_file_size为redo文件大小,innodb_log_buffer_size日志缓冲大小,如果写入速率比较高的话可以设置稍高一些,但是不要大于innodb_log_file_size

重要属于LSN : log sequence number,是递增产生的,是可以唯一标识一条redo日志,对数据库故障非常重要,可以唯一定位数据库运行状态。可以判断数据一致性。在数据库恢复的时候可以看到LSN。

源码:在”storage/innobase/include/log0log.h”

6. undo文件

存在于共享表空间ibdata里面,如果是独立表空间,undo文件会存放到独立表空间中。

作用:Mvcc(保证数据一致性) +事务回滚的时候通过undo文件执行数据回滚。

undo存放




Undo page header 页头信息

Undo segment header 段头信息

Undo record 记录信息

Undo_log overview数据展示信息

套接字文件socket

外部的client连接mysql数据库需要使用socket文件

ps -eaf|grep mysql |grep socket


查看socket文件位置
show variables like 'socket';


My.cnf (
socket = /usr/local/mysql/mysql.sock
)

Pid文件

数据库后台进程文件,mysql启动后会将后台进程id写入文件。

show variables like 'pid_file';


ps -eaf|grep mysql |grep pid


My.cnf (
pid-file= /usr/local/mysql/mysqld.pid


表结构文件

通过datadir查看,如果是独立表空间就会在data文件里面生成对应数据库名字的文件夹,里面存放表文件

show variables like ‘% datadir %’;
或者my.cnf中查找

*.frm 记录表结构定义

*.ibd 记录索引和数据

[root@localhost data]# ll test/
total 540
-rw-rw----. 1 mysql mysql  8586 Jul  2 09:25 t1.frm #t1表结构
-rw-rw----. 1 mysql mysql 98304 Jul  8 10:50 t1.ibd #t1表索引数据
-rw-rw----. 1 mysql mysql  8586 Jul  8 10:42 t2.frm
-rw-rw----. 1 mysql mysql 98304 Jul  8 10:43 t2.ibd


innodb存储引擎文件

My.cnf里面:

innodb_data_file_path

innodb_data_file_path = IBdata1:128M;IBdata2:128M:autoextend
这是一组文件,如果是多组,可以放到不同的磁盘空间上面,分散io压力,提高性能

[root@localhost data]# ll
total 5255244
-rw-rw----. 1 mysql mysql         56 Jun 18 11:19 auto.cnf
-rw-rw----. 1 mysql mysql   12582912 Jun 18 11:59 ibdata1
-rw-rw----. 1 mysql mysql 1073741824 Jul  9 05:03 IBdata1
-rw-rw----. 1 mysql mysql 1073741824 Jul  8 14:44 IBdata2
-rw-rw----. 1 mysql mysql 1073741824 Jul  9 05:03 ib_logfile0
-rw-rw----. 1 mysql mysql 1073741824 Jun 18 12:14 ib_logfile1
-rw-rw----. 1 mysql mysql 1073741824 Jun 18 12:14 ib_logfile2
-rw-r-----. 1 mysql root       12049 Jun 18 11:59 localhost.localdomain.err
-rw-rw----. 1 mysql mysql      27537 Jul  9 05:03 localhost-slow.log
drwx------. 2 mysql mysql       4096 Jun 18 12:14 mysql
drwx------. 2 mysql mysql       4096 Jun 18 12:14 performance_schema
drwx------. 2 mysql mysql       4096 Jul  8 10:55 test##独立表空间文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: