MySQL的日志管理
来源:互联网 发布:propolinse漱口水知乎 编辑:程序博客网 时间:2024/05/16 14:04
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 到文件系统 文件系统到磁盘是由系统调用函数执行的.
- MySQL的日志管理
- 【MySQL】----MySQL日志管理
- MySQL数据库日志的管理与维护
- Linux下MySQL日志的管理
- 第 14 章 MySQL的日志管理
- mysql中的日志管理
- mysql日志管理
- MySQL 日志管理详解
- MySQL日志管理
- MySQL日志管理
- mysql日志管理
- MySQL binlog日志管理
- MySQL日志管理
- mysql日志管理
- MySQL日志管理
- MySQL日志管理
- MySQL日志管理
- MySQL日志管理详解
- ZOJ 2770 Burn the Linked Camp 差分约束
- Leetcode|Pow(x,n)
- django中的ajax实现(GET)
- Java 理论与实践: 正确使用 Volatile 变量
- 键盘挡住文本,调整键盘高度简单办法
- MySQL的日志管理
- hdu 1151 Air Raid
- MySQL优化一之limit优化
- php 中大括号的规范
- POJ_1679_The Unique MST(次小生成树模板)
- C语言的执行过程
- 加载声音资源的工具
- 收集小技巧
- Wedding (poj 3648 2-SAT 输出任意一组解)