MySQL运维1-日志
一、错误日志
错误日志是MySQL中最重要的日志之一,它记录了当MySQL启动和停止时,以及服务器在运行过程中发生的任何严重错误时的相关信息,当数据库出现任何故障导致无法正常使用时,建议首先查看此日志
错误日志默认是开启的,默认存在目录/var/log/,默认的日志文件名为mysqld.log, 但是这些都是可以配置的,可以通过指令查看日志位置:show variables like ''%log_error%
说明1:我的这里错误日志就不是默认路径也不是默认名称,但是没关系,根据这个变量查询的结果查询就可以了。
二、二进制日志
2.1 二进制日志(binlog)
记录了所有的DDL(数据定义语言)语句和DML(数据操作语言)语句,但不包括数据查询(select,show)等语句
2.2 作用
- 灾难时的数据恢复
- MySQL的主从赋值,在MySQL8版本中,默认的二进制日志是开启的
- 通过 show variables like "%log_bin%" 可以查看具体的日志位置
2.3 日志格式
MySQL服务器中提供了多种格式来记录二进制日志,具体格式及特点如下:
STATEMENT:基于SQL语句的日志记录,记录的是SQL语句,对数据进行修改的SQL都会记录在日志文件中
ROW:基于行的日志记录,记录的是每一行的数据变更。 (默认)
MIXED:混合了STATEMENT 和 ROW 两种格式,默认采用STATEMENT, 在某些特殊情况下会自动切换为ROW进行记录
通过 show variables like "%binlog_format%"; 可以查看
2.4 修改日志格式
要修改日志格式,需要在MySQL的配置文件设置 binlog_format = "XXXX",然后重启MySQL即可
重启MySQL
修改成功
2.5 日志查看
由于日志是以二进制方式存储的,不能直接读取,需要通过二进制日志查询工具 mysqlbinlog 来查看,
具体语法:mysqlbinlog [options] logfilename
options选项
-d:指定数据名称,只列出指定的数据相关操作
-0:忽略掉日志中的前n行命令
-v:将行事件(数据变更)重构为SQL语句
-vv:将行事件(数据变更)重构为SQL语句,并输出注释信息
2.6 基于ROW的binlog示例
说明1:默认 binlog_fromat为 ROW 模式的情况下 我们查看binlog日志的时候要加上 -v参数即:mysqlbinlog -v binlog.000033
说明2:基于ROW类型的binlog日志是,记录的每一行的变化。
2.7 基于STATEMENT的binlog示例
说明1:同样再次修改age数据
说明2:基于STATEMENT类型的binlog日志,记录的SQL语句的变化而不是,每一行的变化
2.8 日志删除
对于比较繁忙的业务系统,每天生成的binlog数据巨大,如果长时间不清楚,将会占用大量磁盘空间,可以通过一下几种方式清理日志
- reset master :删除全部binlog日志,删除之后,日志编号,将重新从binlog.000001开始
- purge master logs to 'binlog.xxxxxx':删除xxxxxx编号之前的所有日志
- purge master logs before 'yyyy-mm-dd HH:MM:SS':删除日志 'yyyy-mm-dd HH:MM:SS'之前产生的所有日志
- 也可以在MySQL的配置文件中配置二进制日志的过期时间,设置了之后,二进制日期过期会自动删除:show variables like "%binlog_expire_logs_seconds%"; 可以查看
示例:
说明1:删除binlog.000030编号以前的日志
说明2:按照时间点删除
说明3:binlog的过期时间单位是秒,默认是30天
三、查询日志
查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的SQL语句,默认情况下,查询日志是未开启的,如果需要开启查询日志,可以设置一下配置
说明1:general_log 默认是关闭的,可以通过修改MySQL配置文件配置。
说明2:修改好了配置文件要重启MySQL才会生效
说明3:对数据库进行数据库查询,表查询,数据更改等操作
说明4:刚才的操作都在查询日志中可以找到。
说明5:因为该日志记录的内容比较多,在比较繁忙的系统中可以不用启动该日志。
四、慢查询日志
慢查询日志记录了所有执行时间查过参数long_query_time设置值并且扫描记录数不小于min_examined_row_limit的所有的SQL语句的日志。long_query_time默认为10秒,最小为0,精度可以到微秒
通过MySQL配置文件可以配置是否开启,配置后重启MySQL即可生效
说明1:默认是关闭的
说明2:修改配置文件 ,然后重启MySQL
说明3:慢查询启动成功
说明4:这次查询耗时4.02秒
说明5:然后打开慢查询日志就可以查看到这里查询的情况,通过慢查询日志,我们主要是可以定位到那条语句执行比较慢,方便我们做精准的SQL优化
MySQL运维1-日志的更多相关文章
- mysql运维-二进制日志BINARY LOG清理
1.1 方法1:PURGE MASTER LOGS 语法: PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetim ...
- MySQL运维工具
Mysql运维过程中设计的各类工具以及各个场景的的命令行的分类.大体总结如下的xmind图片(.xmind附件 加 Q1123654342). 大体上分为: 实例管理工具.高可用工具.慢日志查询工具. ...
- mysql运维必会的一些知识点整理
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- mysql运维
反反复复装了好多次的mysql,上学的时候从来没有考虑过稳定性,装起来,能跑通,增删改查没有问题万事大吉.参与工作后参与平台搭建和维护,平台的稳定性是首先必须要考虑的问题,之前装mysql使用经历了密 ...
- 美图秀秀DBA谈MySQL运维及优化
美图秀秀DBA谈MySQL运维及优化 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=401797597&idx=2& ...
- 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构
在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...
- mysql运维必会的一些知识点整理(转自民工哥)
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- 搭建稳固的MySQL运维体系
MySQL 监控要点 MySQL 监控要点,主要涉及服务器和 MySQL 两个方向的监控告警. 在这两个监控告警方向需要重点关注监控策略.监控趋势图及报警方式. 监控策略指的是每个监控项的告警阈值,例 ...
- 公司没有 DBA,Mysql 运维自己来
如果你的公司有 DBA,那么我恭喜你,你可以无视 Mysql 运维.如果你的公司没有 DBA,那你就好好学两手 Mysql 基本运维操作,行走江湖,防身必备. 环境:CentOS7 版本: 一.虚拟机 ...
- MySQL运维开发相关的所有工具
http://www.ruzuojun.com/topic/592.html Percona Toolkit 安装使用 http://cenalulu.github.io/mysql/mysql- ...
随机推荐
- 判断两个矩形是否相交(Rect Intersection)
0x00 Preface 最近在开发一个2D组态图形组件的过程中,里面的数学模块,涉及到两个矩形是否相交的判断. 这个问题很多年前就写过,算是个小的算法吧. 网络上搜索一下,有很多思路,有一些思路要基 ...
- 沉思篇-剖析Jetpack的LiveData
上一篇我们讲到了架构组件中的Lifecycle,由于缺少具体的运用,可能缺少直观的感受,今天我们就用Lifecycle实战一回,看看Lifecycle是怎样运用到LiveData中的. LiveDat ...
- 【python基础】类-类属性
在初始类中,我们介绍了如何访问类属性,除了访问类属性外还有其他操作类属性的情况,我们将在这里做详细介绍: 1.给类属性指定默认值 类中的每个属性都必须有初始值,哪怕这个值是0或者空字符串.在有些情况下 ...
- 使用CosmosDB进行大规模数据的实时数据处理和流式传输
目录 使用 Cosmos DB 进行大规模数据的实时数据处理和流式传输 背景介绍 文章目的 目标受众 技术原理及概念 基本概念解释 技术原理介绍 相关技术比较 实现步骤与流程 准备工作:环境配置与依赖 ...
- Go语言编程技巧:实现高效的数据处理和企业应用程序
目录 Go语言编程技巧:实现高效的数据处理和企业应用程序 摘要 Go语言是一种现代的编程语言,以其高效.简洁.安全.可靠等优点而备受欢迎.本文将介绍Go语言编程技巧,包括数据处理和企业应用程序方面的应 ...
- 跨越HTTP无状态边界:Cookie与Session在Django中的实战应用
本文深入探索了Django中的Cookie和Session,解析了如何应对HTTP协议的无状态性问题,说明其基础概念,分析工作原理,并讨论何时应选择使用Cookie或Session.文章进阶部分,提出 ...
- 在映客的虚拟KTV里唱了一首“爱你”
如果你突然打了个喷嚏 那一定就是我在想你 如果半夜被手机吵醒 啊~那是你的虚拟 KTV 在响起 2022 年 5 月 18 日,映客 App 上线了业内首个元宇宙 K 歌玩法「全景 K 歌」,给用 ...
- Hexo博客yilia主题首页添加helper-live2d模型插件
插件效果 插件的github地址 插件作者提供了较为详细的安装步骤,我结合自己操作和图示,提供大家. 效果展示:红框内为2d模型,可以随鼠标移动而变化 安装模块: hexo博客根目录选择cmd命令窗口 ...
- vue基本操作[2] 续更----让世界感知你的存在
Vue文件解析 什么是<template/>标签 template是html5新元素,主要用于保存客户端中的内容,表现为浏览器解析该内容但不渲染出来,可以将一个模板视为正在被存储以供随后在 ...
- salesforce零基础学习(一百二十九)Lead Convertion 有趣的经历
本篇参考:https://help.salesforce.com/s/articleView?id=000382564&type=1 Lead Convertion 是salesforce中s ...