深入浅出MySQL开发优化和管理维护学习笔记之MySQL日志文件

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

一、配置文件分类与参数


  1. 错误日志


数据库启停过程中错误,运行过程中的异常。

保存方式: 文件

启用方式:无需使用开关参数启用,默认开启

相关参数

文件位置参数log_error,如果不指定值默认在DATADIR目录下,名称为host_name.error。



2.二进制(bin)日志


所有DDL和DML但不包含查询语句。

保存方式: 文件

启用方式:需要配置文件中设置开关参数启用,默认关闭(OFF)

文件位置参数log_bin,如果不指定名称,名称为host_name-bin.NUM;如果只指定名称,以指定名称。均默认放到DATADIR目录下。

相关参数

binlog_format=STATEMENT/ROW/MIXED,日志格式控制,默认自动开启。

expire_logs_days=N,日志保存周期,默认为0,无限制。

也可使用命令删除SQL命令行RESET MASTER 或 PERGE MASTER LOGS

读取命令

mysqlbinlog


使用场景:高可用主从复制、数据库恢复时使用


3.查询日志


全部SQL语句包含select。

保存方式: 文件 或 表(general_log)

要永久生效,需要配置文件中设置开关参数启用,默认关闭(OFF)

文件位置参数general_log,参数已经显示设置设置为 1 或不设置均表示启用,设置为0 表示禁用。

相关参数

general_log_file,如果未指定值,或者未显示设置log_output的值,默认放到DATADIR目录下hostname.log


4.慢查询日志


全部超过参数long_query_time且扫描记录数不小于long_query_time的SQL语句,管理语句和不适用索引的select不记录。

保存方式: 文件 ,日志文件中可以精确到微妙 或 表(slow_log),表中记录只能精确到秒。

启用方式:要永久生效,需要配置文件中设置开关参数启用,默认关闭(OFF)

文件位置参数slow_query_log,参数已经显示设置,值设置为 1 或不设置均表示启用,设置为0 表示禁用。

相关参数

slow_query_log_file ,如果未指定值,默认hostname-slow.log放到DATADIR目录下

log_output = file,table,可以指定其一或全部选择;

相关工具

msqldumpslow 对慢日志进行分类,建议正常情况下开启设置,并经常查看。


使用场景:SQL优化,服务器性能诊断。


5.第三方日志工具

慢查询日志、查询日志、二进制日志、用户自定义类型日志查看工具

mysqlsla



二、配置文件举例


[root@mdb01 mysql]# pwd

/opt/mysql

[root@mdb01 mysql]# vi my.cnf 


# Start of my.cnf file

# For advice on how to change settings please see

# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html


[mysqld]


# Remove leading # and set to the amount of RAM for the most important data

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size = 128M


# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin


####### log setting ########

### bin log ###

log-bin

binlog_format = STATEMENT

expire_logs_days = 7


### slow log ###

slow_query_log = 1

log_output = file


# These are commonly set, remove the # and set as required.

# basedir = .....

# datadir = .....

# port = .....

# server_id = .....

# socket = .....


# Remove leading # to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

# join_buffer_size = 128M

# sort_buffer_size = 2M

# read_rnd_buffer_size = 2M


sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


# End of my.cnf file


三、验证配置


1.二进制日志


mysql> show variables like "log_bin";

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_bin       | ON    |

+---------------+-------+

1 row in set (0.00 sec)


mysql> show variables like "binlog_format%";

+---------------+-----------+

| Variable_name | Value     |

+---------------+-----------+

| binlog_format | STATEMENT |

+---------------+-----------+

1 row in set (0.00 sec)


mysql> show variables like "expire_logs_days";

+------------------+-------+

| Variable_name    | Value |

+------------------+-------+

| expire_logs_days | 7     |

+------------------+-------+

1 row in set (0.00 sec)


2.慢查询日志


mysql> show variables like "slow_query_log%";

+---------------------+--------------------------------+

| Variable_name       | Value                          |

+---------------------+--------------------------------+

| slow_query_log      | ON                             |

| slow_query_log_file | /opt/mysql/data/mdb01-slow.log |

+---------------------+--------------------------------+

2 rows in set (0.00 sec)


mysql> show variables like "log_output%";

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_output    | FILE  |

+---------------+-------+

1 row in set (0.01 sec)


mysql> 



本文转自 pgmia 51CTO博客,原文链接:http://blog.51cto.com/heyiyi/1638585

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
16天前
|
存储 安全 关系型数据库
Mysql 的binlog日志的优缺点
MySQL的binlog(二进制日志)是一个记录数据库更改的日志文件,它包含了所有对数据库执行的更改操作,如INSERT、UPDATE和DELETE等。binlog的主要目的是复制和恢复。以下是binlog日志的优缺点: ### 优点: 1. **数据恢复**:当数据库出现意外故障或数据丢失时,可以利用binlog进行点恢复(point-in-time recovery),将数据恢复到某一特定时间点。 2. **主从复制**:binlog是实现MySQL主从复制功能的核心组件。主服务器将binlog中的事件发送到从服务器,从服务器再重放这些事件,从而实现数据的同步。 3. **审计**:b
|
22天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
77 1
|
26天前
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位
|
1月前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
29 0
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
49 0
|
1天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
8 0
|
4天前
|
运维 Oracle 关系型数据库
Oracle日志文件:数据王国的“记事本”
【4月更文挑战第19天】Oracle日志文件是数据库稳定运行的关键,记录数据变更历史,用于恢复和故障处理。它们协调并发操作,确保数据一致性和完整性。日志文件实时写入操作信息并定期刷新到磁盘,便于数据恢复。然而,日志文件需备份和归档以保证安全性,防止数据丢失。日志文件,数据王国的“记事本”,默默守护数据安全。
|
5天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
8天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册