MySQL的日志管理

来源:互联网 发布:propolinse漱口水知乎 编辑:程序博客网 时间:2024/05/16 14:04
MySQL的日志:

SHOW GLOBAL VARIABLES LIKE '%log%'; 查看和日志有关的变量配置
-----------------------------------------------------------
日志的类型:
错误日志
查询日志
慢查询日志
二进制日志
中继日志
事务日志
------------------------------------------------------------
错误日志:
错误日志文件记录的内容:
 1 服务器启动过程中的信息.
 2 服务器运行过程中产生的错误信息.
 3 时间调度器运行一个事件的时候产生的错误信息
 4 从服务器启动过程中产生的信息.

错误日志的文件默认是数据目录中,文件的命名 hostname.err

错误日志是不能关闭的.

服务器配置参数变量:
 log_error = PATH 指定错误日志的文件的位置 和 文件名

 log_warning = 0 | 1 表示警告信息是否写入错误日志文件中
--------------------------------------------------------------

查询日志:
查询日志记录了所有的查询的语句,在生产服务器中,我们是不回打开这个开关的,会消耗服务器的资源

服务器的配置参数变量:
 general_log = On | Off  查询日志的开关

 general_log_file = PATH 查询日志文件的位置和文件名命令

 log = On | Off 表示是否所有的语句(delete update...)都写入查询日志 

 log_output = FILE | TABLE | NONE 查询日志输出的位置
FILE 表示输出到文件 使用 general_log_file参数
TABLE 表示输出到表中 mysql.general_log 表中
NONE 表示即使打开general_log 也不记录日志
 
---------------------------------------------------------------
慢查询日志:
慢查询日志记录了执行时间查过了指定时间的SQL语句,这个日志一般是开启的,不会消耗太多的系统资源.

服务器的配置参数:
 long_query_time = 超时时间
 
 slow_query_log = On | Off 慢查询日志的开关

 slow_query_log_file = PATH 慢查询日志的位置

 log_slow_queries = On | OFf 慢查询日志的开关 5.6之前使用

          log_output = FILE | TABLE | NONE 
FILE 表示使用slow_query_log_file 参数
       TABLE 表示记录到数据库的表中 mysql.slow_log          
----------------------------------------------------------------

二进制日志:
二进制日志文件保存了 修改 和 潜在可能修改的语句.

二进制日志文件的作用 是 复制 和 恢复

二级制日志的滚动:避免单个二进制日志文件过大
1 基于大小的滚动
2 基于时间的滚动
3 服务器启动的时候滚动
4 FLUSH LOGS;命令滚动日志

查看当前使用的二进制日志文件:
SHOW MASTER STATUS;

查看所有的二进制日志文件:(查看索引文件中的内容)

SHOW BINARY LOGS;

查看二进制日志的内容:
1 使用用户空间的工具
 mysqlinlog '文件';
 mysqlbinlog --start-datetime ‘二进制日志文件';
 mysqlbinlog --stop-datetime '二进制日志文件';
 mysqlbinlog --start-position '二进制日志文件';
 mysqlbinlog --stop-position '二进制日志文件';

2 使用mysql的命令
 mysql> SHOW BINLOG EVENTS IN '文件' FROM pos;

Log_Name :二进制日志文件的文件名
Pos : 二进制日志的开始的相对位置
Server_id : 产生该日志的服务器的ID号码
ENd_log_pos : 结束日志的相对位置
Info : 日志的信息

删除二进制日志文件:
PURGE BINARY LOGS TO '二进制日志文件'; 表示删除指定二进制日志文件之前的所有二进制日志文件.

服务器参数配置变量:
binlog_formart = STATEMENT | ROW | MIXED 定义了二进制日志的格式
STATEMENT 是基于语句保存数据
ROW 是基于行保存数据
MIXED 是混合的保存方式
binlog_cache_size = 定义事务性语句使用的用户空间的缓冲二进制日志的大小

binlog_stmt_cache_size = 定义非事务性语句使用的用户空间的缓冲二进制日志的大小

bin_log = PATH 指定二进制日志文件的位置

bin_log_index = 指定二进制日志的索引文件的位置

sql_log_bin = On | OFF 是否开启二进制日志 这个会话参数 是不能在配置文件中配置的

max_binlog_cache_size =

max_binlog_stmt_cache_size = 

sync_binlog = 控制同步二进制日志
0 表示由文件系统决定什么时候同步二进制日志 从文件系统到磁盘
n 表示每n次二进制写入文件系统缓冲就 有文件系统同步到磁盘中

中继日志:
中继日志是从主服务器中复制而来的二进制日志文件,并在本地保存为中继日志.

事务日志:

事务日志是将 非顺序的I/O操作转化为顺序的I/O操作.


服务器的配置参数变量:

innodb_flush_log_at_trx_commit 事务提交的时候同步事务日志的方式
0 表示每秒同步一次I/O到文件系统,并且执行磁盘flush从文件系统到磁盘中
1 表示每次事务提交同步I/O到文件系统,并且执行flush从文件系统到磁盘中
2 表示每次事务提交同步I/O到文件系统,但是不指定flush同步到磁盘文件,由操作系统决定同步.

innodb_log_buffer_size = 用户空间事务日志的缓冲的大小
innodb_log_file_size = 日志文件的大小

innodb_log_file_in_group = 日志文件的个数

innodb_log_group_home_dir = 日志文件的家目录


配置:


---------------------------------------------
错误日志:


log_error = /mydata/errorlogs/error-log.log 指定错误日志的文件


log_warnings = 1 开启警告写入错误日志文件中


---------------------------------------------


查询日志:


general_log = Off 表示关闭写入查询日志


general_log_file = PATH 这个参数可以不配置


log = Off 表示并不把非查询语句写入查询日志中


----------------------------------------------


慢查询日志:


slow_query_log = On 表示开启慢查询日志


log_slow_queries = On 表示开启慢查询日志


slow_query_log_file = PATH 指定查询日志的位置


log_output = FILE 指定查询日志的输出类型是写入文件


-----------------------------------------------


二进制日志:


sql_log_bin = On 这个是会话级别的参数 是不能写入配置文件中


log_bin = /mydata/logbins/log-bin 指定二进制日志文件的位置文件名


log_bin_index = /mydata/data/log-bin.index 指定二进制日志索引文件


binlog_format = MIXED 指定二进制日志的格式


binlog_cache_size = 指定事务性语句的用户空间二进制缓冲大小 每一个连接用户都会分配独立的内存空间


binlog_stmt_cache_size = 指定非事务性语句的用户空间的二进制缓冲的大小 每一个连接的用户都会分配独立的内存空间


max_binlog_cache_size = 最大值 不需要设置


max_binlog_stmt_cache_size = 最大值 不需要设置


expire_logs_days = 0 是否过期二进制日志文件 0表示不过期


sync_binlog = 0 同步二进制日志 文件系统(内存缓冲) 到 磁盘 至于用户空间到文件系统这个过程是内部的机制自动完成的.


0 表示由操作系统决定从文件系统到磁盘的同步
n 表示每n次写入文件系统的缓冲就同步到磁盘中


---------------------------------------------------


事务性日志:


innodb_log_buffer_size = 用户空间事务日志缓冲的大小


innodb_log_file_size = 指定事务日志文件的大小


innodb_log_files_in_group = 事务日志的个数


innodb_log_group_home_dir = 事务日志的位置


innodb_flush_log_at_trx_commit = 事务日志的同步机制


0 表示每秒由用户空间innodb_log_buffer_size 到 文件系统缓冲再调用系统fsync()函数同步到磁盘中
1 表示每次事务提交从用户空间innodb_log_buffer_size 到 文件系统 再调用系统fsync()函数同步到磁盘中
2 表示每次事务提交从用户空间innodb_log_buffer_size 到文件系统 文件系统到磁盘是由系统调用函数执行的.



0 0
原创粉丝点击