mysql日志设置

来源:互联网 发布:七天网络登录 编辑:程序博客网 时间:2024/05/16 19:49

mysql文件种类

  1. 参数文件my.cnf
  2. 日志文件
  3. socket文件
  4. pid文件
  5. mysql表结构文件
  6. 存储引擎文件

参数文件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存放
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]# lltotal 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.logdrwx------. 2 mysql mysql       4096 Jun 18 12:14 mysqldrwx------. 2 mysql mysql       4096 Jun 18 12:14 performance_schemadrwx------. 2 mysql mysql       4096 Jul  8 10:55 test##独立表空间文件
0 0