8.1 日志管理

本文深入解析 MySQL 中的关键日志类型,包括错误日志、二进制日志、查询日志和慢查询日志,帮助运维人员高效定位问题、分析性能并管理数据库。


1. 错误日志

1.1 概述

错误日志记录 MySQL 服务器运行过程中的重要信息,例如启动、关闭、错误及警告等,是排查数据库故障的第一手资料,是默认开启的。

1.2 查看指令和解析

通过以下指令查看错误日志相关变量:

SHOW VARIABLES LIKE '%log_error%';

示例输出:

Variable_nameValue
binlog_error_actionABORT_SERVER
log_error./localhost.localdomain.err
log_error_serviceslog_filter_internal; log_sink_internal
log_error_suppression_list
log_error_verbosity2
参数解析:
  • log_error:记录错误日志的文件路径。
  • binlog_error_action:二进制日志出现错误时的行为,ABORT_SERVER 表示停止服务器。
  • log_error_services:配置错误日志的过滤器和输出方式。
  • log_error_verbosity:日志详细级别,1 表示错误信息,2 包括警告,3 记录注意信息。

1.3 使用场景

  • 服务器启动失败时定位问题。
  • 跟踪和记录运行过程中出现的异常。
  • 监控警告和潜在风险。

1.4 案例

查看当前日志文件路径,并查看日志内容:

cat /path/to/log_file.err

分析:

2024-12-01T10:00:00.000000Z 0 [ERROR] InnoDB: Unable to open the data file

此错误表明 InnoDB 数据文件路径配置错误,应检查 innodb_data_file_path 配置项。


2. 二进制日志

2.1 概述和使用场景

二进制日志记录所有对数据库执行的修改操作(如 INSERTUPDATE 等),在Mysql8.0是默认开启的。常用于以下场景:

  • 数据恢复:通过重放二进制日志恢复数据。
  • 主从复制:复制主库的操作日志到从库,保持数据同步。

2.2 查询指令和解析

查看日志格式
SHOW VARIABLES LIKE '%binlog_format%';

示例输出:

Variable_nameValue
binlog_formatROW

解析:

  • ROW:记录行级别的操作日志(默认)。
  • STATEMENT:记录 SQL 语句。
  • MIXED:混合模式,结合 ROWSTATEMENT
使用 mysqlbinlog 工具

用于查看二进制日志文件内容信息。

格式:

mysqlbinlog [参数选项] <binlog_file>

常用参数选项:

  • -d <database>:仅列出指定数据库的相关操作。
  • -o <n>:忽略日志中的前 n 条记录。
  • -v:将日志重构为 SQL 语句。
  • -vv:在 -v 基础上添加注释信息。

示例操作:

# 查看指定二进制日志文件内容
mysqlbinlog -v mysql-bin.000001
日志删除
# 删除所有过期日志
PURGE BINARY LOGS BEFORE '2024-12-01 00:00:00';
设置过期时间
SET GLOBAL binlog_expire_logs_seconds = 604800; -- 7天

3. 查询日志

3.1 概述

查询日志记录所有 SQL 语句,适用于排查非正常运行或验证用户行为,默认不开启。

3.2 查看及配置

启用查询日志:

SET GLOBAL general_log = 'ON';
SET GLOBAL log_output = 'FILE';

查看查询日志文件路径:

SHOW VARIABLES LIKE '%general_log_file%';

4. 慢查询日志

4.1 概述

慢查询日志记录执行时间超过指定阈值的 SQL 语句,常用于发现性能瓶颈。

4.2 启用及配置

启用慢查询日志:

SET GLOBAL slow_query_log = 'ON';
SET GLOBAL log_output = 'FILE';
SET GLOBAL long_query_time = 2; -- 超过2秒记录为慢查询

查看日志文件路径:

SHOW VARIABLES LIKE '%slow_query_log_file%';

4.3 分析慢查询日志

使用 mysqldumpslow 工具统计慢查询:

mysqldumpslow -s c -t 10 /path/to/slow_query_log

选项解析:

  • -s c:按查询次数排序。
  • -t 10:显示前 10 条记录。

总结

通过合理使用错误日志、二进制日志、查询日志和慢查询日志,MySQL 运维人员可以:

  1. 快速定位故障并恢复数据。
  2. 优化查询性能,提升数据库运行效率。
  3. 保证数据同步和灾备需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 学习总结(84)—— Docker 常用运维命令

版本与信息查询 docker --version:查看安装的Docker版本。 docker info:获取Docker系统的详细配置信息。 镜像管理 docker images:列出本地所有镜像。 docker search IMAGE_NAME:搜索Docker Hub上的镜像。 docker pull IMAGE_NAME[:TAG]:从仓库下载指定镜像。 docker rmi …

【C++】判断能否被 3, 5, 7 整除问题解析与优化

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述&#x1f4af;老师代码实现与分析老师代码逻辑分析优点缺点 &#x1f4af;学生代码实现与分析学生代码逻辑分析优点缺点 &#x1f4af;改进与优化优化代码实现优化…

[计算机网络]IP地址推行的“书同文,车同轨”

硬件地址无法直接转换的故事 在很久很久以前&#xff0c;网络世界就像一个庞大的帝国&#xff0c;各个村落&#xff08;网络&#xff09;都有自己的语言&#xff08;硬件地址&#xff09;。每个村落都有自己的规则和习惯&#xff0c;村里的每户人家&#xff08;设备&#xff0…

Maven pom文件分析

文章目录 project子元素分类项目基础信息- parent- modelVersion- groupId- artifactId- name- version- packaging- description- url- inceptionYear 组织与许可信息- organization- licenses- developers- contributors- mailingLists 自定义属性信息- properties 模块配置-…

修改浏览器地址栏参数

Vue 修改当前页面地址栏参数 function updateUrlParameter(param: string, value: string) {const url new URL(window.location.href); // 获取当前页面的 URL// 解析哈希部分const hash url.hash ? url.hash.slice(1) : "";const [path, queryString] hash.sp…

深度优先搜索(DFS)与回溯法:从全排列到子集问题的决策树与剪枝优化

文章目录 前言&#x1f384;一、全排列✨核心思路✨实现步骤✨代码✨时间和空间复杂度&#x1f381;1. 时间复杂度&#x1f381;2. 空间复杂度 &#x1f384;二、子集✨解法一&#xff1a;逐位置决策法&#x1f381;步骤分析&#x1f381;运行示例&#x1f381;代码 ✨解法二&a…

加密算法之单向散列算法

加密算法 背景&#xff1a; 现有的序列号加密算法大都是软件开发者自行设计的&#xff0c;大部分相当简单。有些算法&#xff0c;其作者虽 然下了很大的工夫&#xff0c;却往往达不到希望达到的效果。其实&#xff0c;有很多成熟的算法可以使用&#xff0c;特别是密 码学中一些…

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(8)

1.问题描述&#xff1a; 在AGC中&#xff0c;推送服务的消息回执新建成功后&#xff0c;有一个有效期 1&#xff0c;这个有效期是什么意思&#xff0c;过期后&#xff0c;会影响什么呢&#xff1f; 2&#xff0c;这个有效期是否可以修改成一直不过期&#xff1f; 解决方案&…

egg初始搭建

前言 egg.js 是由阿里开源的面向企业级开发的 Node.js 服务端框架&#xff0c;它的底层是由 Koa2 搭建。 Github&#xff1a;https://github.com/eggjs/egg&#xff0c;目前 14.8K Star&#xff0c;egg 很适合做中台。 安装 首先&#xff0c;你要 确保 Node 已经配置环境变量…

D96【python 接口自动化学习】- pytest进阶之fixture用法

day96 pytest的fixture详解&#xff08;三&#xff09; 学习日期&#xff1a;20241211 学习目标&#xff1a;pytest基础用法 -- pytest的fixture详解&#xff08;三&#xff09; 学习笔记&#xff1a; fixture(scop"class") (scop"class") 每一个类调…

Python中的all/any函数和操作符and/or

操作符直观易读适用简单逻辑&#xff0c;函数紧凑方便适宜多条件处理。 (笔记模板由python脚本于2024年12月12日 22:19:10创建&#xff0c;本篇笔记适合有一定编程基础的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff…

论文学习——多种变化环境下基于多种群进化的动态约束多目标优化

论文题目&#xff1a;Multipopulation Evolution-Based Dynamic Constrained Multiobjective Optimization Under Diverse Changing Environments 多种变化环境下基于多种群进化的动态约束多目标优化&#xff08;Qingda Chen , Member, IEEE, Jinliang Ding , Senior Member, …

2025年山东省职业院校技能大赛“信息安全管理与评估”(山东省) 任务书

2025年山东省职业院校技能大赛“信息安全管理与评估”(山东省 任务书 模块一网络平台搭建与设备安全防护任务1&#xff1a;网络平台搭建 &#xff08;50分&#xff09;任务2&#xff1a;网络安全设备配置与防护&#xff08;250分&#xff09; 模块二网络安全事件响应、数字取证…

国标GB28181-2022平台EasyGBS如何实现无插件也能让RTSP在网页端播放?

在流媒体技术日新月异的今天&#xff0c;实时流传输协议&#xff08;RTSP&#xff09;作为视频监控、在线直播等领域的重要支撑&#xff0c;正经历着前所未有的变革。曾经&#xff0c;RTSP在网页端播放面临着诸多挑战&#xff0c;如浏览器兼容性问题、安全性考量以及视频流处理…

7-5 排序

给定 n 个&#xff08;长整型范围内的&#xff09;整数&#xff0c;要求输出从小到大排序后的结果。 本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下&#xff1a; 数据1&#xff1a;只有1个元素&#xff1b;数据2&#xff1a;11个不相同的整数…

EXCEL 关于plot 折线图--频度折线图的一些细节

目录 0 折线图有很多 1 频度折线图 1.1 直接用原始数据做的频度折线图 2 将原始数据生成数据透视表 3 这样可以做出了&#xff0c;频度plot 4 做按某字段汇总&#xff0c;成为累计plot分布 5 修改上面显示效果&#xff0c;做成百分比累计plot频度分布 0 折线图有很多 这…

MATLAB四种逻辑运算

MATLAB中的四种逻辑运算包括逻辑与用&或 a n d 表示 ( 全为 1 时才为 1 &#xff0c;否则为 0 ) and表示(全为1时才为1&#xff0c;否则为0) and表示(全为1时才为1&#xff0c;否则为0)&#xff0c;逻辑或用|或 o r 表示 ( 有 1 就为 1 &#xff0c;都为 0 才为 0 ) or表示…

#UI框架篇:针对 ant-design-vue 版本 3.2.6 中 <a-select> 组件使用 mode=“combobox“ 时模式不生效的问题

针对 ant-design-vue 版本 3.2.6 中 组件使用 mode“combobox” 时模式不生效的问题&#xff0c;我们可以基于现有信息和社区反馈来探讨可能的原因及解决方案。 警告与弃用通知 根据最新的资料&#xff0c;ant-design-vue 已经发出警告&#xff1a;[antdv: Select] The combob…

面试经验分享 | 杭州某安全大厂渗透测试岗

目录&#xff1a; 所面试的公司&#xff1a;某安全大厂   所在城市&#xff1a;杭州    面试职位&#xff1a;渗透测试工程师    面试过程&#xff1a;  面试官的问题&#xff1a;    1、面试官开始就问了我&#xff0c;为什么要学网络安全&#xff1f;   …

jmeter CLI Mode 传参实现动态设置用户数

一.需求 CLI 运行模式下每次运行想要传入不同的用户数&#xff0c;比如寻找瓶颈值的场景&#xff0c;需要运行多次设置不同的用户数。 二.解决思路 查看官方API Apache JMeter - Users Manual: Getting Started api CLI Mode 一节中提到可以使用如下参数做属性的替换&#…