MySQL运维14-MySQL日志概述

1、MySQL日志概述

  1. MySQL有四种日志文件:错误日志、通用日志、二进制日志和慢查询日志。默认情况下,所有日志均创建于mysqld数据目录中。
  2. 通过刷新日志,可以强制mysqld关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志中)。当执行一个flush logs语句或执行mysqladmin flush-logs或mysqladmin refresh时,会使得日志刷新。

2、错误日志

2.1、日志内容

错误日志文件包含了服务器启停及运行过程中任何严重错误时的相关信息。

2.2、文件位置

  • 可用–log-error[=file_name]选项指定错误日志的文件位置。否则将使用错误日志名host_name.err,并在数据目录中写入日志文件。

2.3、监控分析

可以使用swatch等工具实时监控错误日志,或者自己编写脚本检查错误日志。也可发送错误日志到系统日志服务Syslog,这样就可以利用一些日志分析工具集中分析和处理错误信息。

3、通用日志

3.1、日志内容

  • 所有连接和语句都将被记录到日志文件中。
  • 日志量是四个日志里最大的,所以非必要不打开,否则在一个生产繁忙的系统中,通用日志在几小时之内可能就会塞满磁盘。

3.2、打开方式和文件位置

  1. 服务器级打开方式:用–log[=file_name]或-l[file_name]选项启动通用日志。
  2. 会话级打开方式:可用SET GLOBAL general_log ON打开通用日志记录
  3. 如果没有给定file_name的值,那么默认名就是host_name.log。可用show variables like '%gene%'查看通用日志的路径。

4、二进制日志

4.1、日志内容

  • 二进制日志包含了所有更新了数据或已经潜在更新了数据的语句及其执行时间。语句以“事件”(event)的形式保存,它描述了数据的更改信息。
  • 二进制日志的主要目的是恢复数据,因为二进制日志包含备份后进行的所有更新。
  • 二进制日志不包含没有修改任何数据的语句。如果想要记录所有的语句(例如,为了识别有问题的查询),那么我们应该使用通用日志。

5、慢查询日志

5.1、打开方式和文件位置

  • 当参数slow_query_log=1时,mysqld将记录一个执行时间超过long_query_time秒的所有SQL语句的日志文件。
  • 如果没有给出慢查询文件名,则默认为主机名,后缀为“-slow.log”。如果给出了文件名,但不是绝对路径名时,文件将会写入数据目录。

5.2、监控分析

要想让检查变得容易些,可以使用mysqldumpslow命令或pt-query-digest获得日志中显示的查询摘要来处理慢查询日志。

6、日志文件的维护

  1. 注意定期清理日志文件,以确保日志文件不会占用太多的硬盘空间。
  2. 错误日志文件,一般情况下不会变得很大;
  3. 慢查询日志在慢查询很多的情况下可能会变得很大,这时可能需要手动处理或编写脚本进行处理;
  4. 对于二进制日志文件,可以设置合适的过期策略,如expire-logs-days=10,该语句的意思是设置过期日期为10天。expi re_logs_days设置会在运行flush logs命令后触发删除过期的日志;
  5. 不要用操作系统下的rm命令删除日志,这可能会导致你执行日志清理的命令失败,你可能需要手动编辑文件hostname-bin.index才能修复这个问题。

7、总结

  1. MySQL共有错误日志、通用日志、二进制日志、慢查询日志四种。
  2. 一般通用日志会记录几乎所有信息,所以信息量巨大,不建议平时打开,只有出现问题时可以临时打开。
  3. 二进制日志记录的是所有数据更新的情况,主要用于数据恢复。
  4. 慢查询日志通过slow_query_log控制是否打开,用long_query_time控制慢查询语句的阀值。
  5. 注意日志的定期清理,特别是慢查询日志。
  6. 注意设置二进制日志合适的过期策略,例如设置expire-logs-days=180,则系统会在运行flush logs命令后自动触发删除180天前的二进制日志。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2023年网络建设与运维国赛的Linux部分将涉及大量与Linux操作系统相关的技术和实践。参赛选手需要具备扎实的Linux基础知识、熟悉常用的Linux命令和工具,以及对网络架构和运维流程有深入了解。以下是几个可能出现的考点和相关内容: 1. Linux 系统安装与配置:选手需要了解如何安装各种Linux发行版,并进行基本配置,如网络设置、用户管理和权限控制等。 2. Linux 网络服务:主要考察选手对于各种网络服务的搭建和配置能力,如Web服务器(Apache/Nginx)、数据库服务器MySQL/PostgreSQL)和邮件服务器(Postfix/Dovecot)等。 3. Linux 系统监控与性能优化:选手需要熟悉Linux系统的监控和调优手段,如使用top、vmstat等工具进行性能监测,优化内存管理、磁盘IO等问题。 4. Linux 安全防护与应急响应:选手需要掌握Linux系统的安全防护策略,如配置防火墙、使用SELinux进行强化等;同时,还需了解常见的攻击方式和应急响应措施。 5. Shell 脚本编写:选手需要具备基本的Shell编程能力,能够使用Shell脚本实现日常运维任务的自动化。 在比赛中,选手需要灵活运用自己的知识和技能,通过实际操作和解决问题的能力展现自己的水平。此外,对于团队竞赛,选手之间的协作能力和分工合作也是考核的重点之一。 要在2023年的网络建设与运维国赛的Linux部分取得好成绩,选手们需要提前系统学习相关知识并进行实践,注重积累经验,不断完善自己的技能和能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值