mysql基础19——日志

日志

mysql的日志种类非常多

通用查询日志 慢查询日志 错误日志 与时间有关联

二进制日志 中继日志  与主从服务器的同步有关

 重做日志 回滚日志   与数据丢失有关

通用查询日志

记录了所有用户的连接开始时间和截至时间 以及给mysql服务器发送的所有指令

当数据异常时,开启通用查询日志,还原操作的具体场景 帮助定位问题

查看控制通用查询日志的系统变量
show variables like '%general';

系统变量general_log的值是off 关闭状态 默认关闭

通用查询日志的名称是zzz.log

开启通用查询日志
set global general_log='on';

指定通用查询日志的文件夹和名称
set global @@global.general_log_file='D:/test.log';

查看修改是否生效

查看通用查询日志

通用查询日志都是文本型的数据 使用记事本打开

为节省空间,移除旧的日志文件,创建新的日志文件,对通用日志文件进行维护:

首先 ,关闭通用查询日志  ;

然后 ,将通用查询日志文件移动到备份文件夹 空出磁盘空间 ;

最后,开启通用查询日志

慢查询日志   

my.ini文件  系统变量min_examined_row_limit

记录执行时间超过指定时长的查询 

数据库发生阻塞,运行变慢时,检查慢查询日志 找到那些慢查询 消耗了大量的系统资源  方便查询优化

慢查询日志是由mysql的配置文件控制的

错误日志

记录了mysql服务器启动,停止启动的时间以及系统启动,运行和停止过程中的诊断信息,包括错误,警告和提示等   方便了解服务器的状态,对服务器进行维护

数据库服务器发生系统故障时,错误日志是首选

错误日志是默认开启的 在mysql的配置文件’my.ini‘中配置


日志可以帮助找回由于误操作丢失的数据

比如二进制日志 中继日志 回滚日志(undo log) 重做日志(redo log)等

二进制日志

主要用于主从服务器之间的数据同步,以及服务器遇到故障时数据的无损失恢复

主要记录数据库的更新事件 比如创建数据表 更新表中的数据等

操作二进制日志

主要包括查看,刷新二进制日志,用二进制日志恢复数据以及删除二进制日志

查看二进制日志 (3种情况)

       a. 查看当前正在写入的二进制日志 ,名称以及当前写入的位置

show master status;

       b. 查看所有的二进制日志

show binary logs;

       c. 查看二进制日志中所有的数据更新事件

show binary events in 二进制文件名称;
 刷新二进制日志 

        关闭服务器正在写入的二进制日志文件,重新打开一个新文件 文件名的后缀在现有的基础上+1

flush binary logs;
 用二进制日志恢复数据

        执行二进制日志中从位置xxx开始,到yyy截至的所有数据的更新操作

mysqlbinlog -start-position=xxx --stop-position=yyy 二进制文件名 | mysql -u 用户 -p
删除二进制日志

         删除所有的二进制文件

reset master;

         删除指定二进制日志文件编号小的所有二进制日志文件

pug master logs to 'test-bin.00005';

中继日志

只在主从服务器架构的从服务器上存在

从服务器为与主服务器保持一致 要从 主服务器读取二进制内容 并把读取到的信息写入本地日志文件 从服务器读取中继日志根据中继日志的内容从服务器的数据进行更新 完成主从服务器的数据同步

从服务器本地的日志文件叫做中继日志

注:从服务器宕机 为了系统恢复 要重装操作系统时 如果服务器名称与之前不同 ,需要把从服务器的名称修改回之前的名称,因为中继日志的名称是包含之前的从服务器的名称的


回滚日志 (undo log)

事务执行的时候,回滚日志中记录了事务中每次数据更新前的状态

事务需要回滚的时候 可以通过读取回滚日志恢复指定的位置 

回滚日志可以让其他的事务读取到这个事务对数据更改之前的值,确保其他事务可以不受这个事务修改数据的影响

查看回滚日志的文件大小
show variables like '%innodb_max_undo_log_size%';

单个回滚日志最大可达1G字节存储空间

查看回滚日志所在的文件夹 是否自动截断  是否具有独立的表空间
show variables like '%innodb_undo%';

回滚日志的存储目录是数据目录(默认值) 数据目录的位置可以通过查询变量’datadir‘查看

回滚日志没有提前截断(默认值) 

回滚日志没有自己独立的表空间(默认值)

重做日志(redo log)

存储在磁盘上的一种日志文件  确保数值的持久性 防止数据更新丢失

作用

1)系统遇到故障恢复的时候 可以修复被未完成的事务修改的数据

2)为了提高数据的存取效率 数据更新先保存到内存中,再进行磁盘的读写; 但是停电或宕机时, 内存中保存的数据可能丢失 这时 通过读取重做日志中记录的数据更新操作 把没来的及写到磁盘上的数据更新写到磁盘上 保证数据的完整性

查看重做日志的文件夹和文件数量
show variables like '%innodb_log_files_in_group%';

有2个重做日志文件 该值的取值范围在1~4之间  这4个文件用于不同的操作

1 用户创建表时的插入操作

2 用户创建表的更新和删除操作

3 临时表的插入操作

4 临时表的更新和删除操作


总结

通过数据库的全量备份和二进制日志中保存的增量信息完成数据库的无损失恢复  但是数据量巨大 数据库和数据表很多 这种方法很有挑战性 因为起始位置不好找

这时,配置主从数据库服务器比较合适 把二进制日志文件写入到中继日志,进而同步到从数据库服务器中,可以有效避免数据库故障导致的数据异常等问题

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

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

相关文章

个人开发 App 最简单方法:使用现代开发工具和平台

在移动应用市场的蓬勃发展下,个人开发者也有机会将自己的创意转化为实际的应用程序,并通过应用商店实现盈利。然而,对于许多初学者来说,如何开始个人开发一个应用可能会感到困惑。本文将介绍个人开发 App 的最简单方法&#xff0c…

C++修炼之路之list--C++中的双向循环链表

目录 前言 一:正式之前先回顾数据结构中的双向循环链表 二:list的简介 三:STL中list常用接口函数的介绍及使用 1.构造函数接口 2.list迭代器 范围for 3.数据的修改接口函数 4.list容量操作函数 5.list的迭代器失效 6.演示代码和测…

独立样本t检验——python完整代码(直接运行就行)

#!/usr/bin/env python # -*- coding: utf-8 -*- # Author : 三十二画生JH # Contact : fjhstudent163.com # Software: PyCharm # Time : 2024/4/21 21:49 # Site : 网址 # File : t_test.py # Version : # ---功能描述 """ 对实验数据做独立样本&am…

Linux系统维护:增加空闲内存的大小,以便进程有足够的基础内存(空闲内存)来运行

目录 一、问题 二、解决思路 (一)问题分析 (二)思路 1. 清理缓存 2. 结束不必要的进程 3. 优化应用程序和服务 4. 增加物理内存 5、注意事项 三、实际处理 (一)结束不必要的程序 (二…

4.21java聊天室项目小结

基本完成了用户的登录注册功能,可以实现用户账号登录和邮箱登录功能,忘记密码通过邮箱发送验证码找回,注册账号功能,并传递给客户端更新数据库的表内容 注册功能: 注册成功后密码进行MD5加密并通过服务器保存到数据库…

【FFmpeg】视频与图片互相转换 ( 视频与 JPG 静态图片互相转换 | 视频与 GIF 动态图片互相转换 )

文章目录 一、视频与 JPG 静态图片互相转换1、视频转静态图片2、视频转多张静态图片3、多张静态图片转视频 二、视频与 GIF 动态图片互相转换1、视频转成 GIF 动态图片2、 GIF 动态图片转成视频 一、视频与 JPG 静态图片互相转换 1、视频转静态图片 执行 ffmpeg -i input.mp4 …

node和go的列表转树形, 执行速度测试对比

保证数据一致性,先生成4000条json数据到本地,然后分别读取文本执行处理 node代码 node是用midway框架 forNum1:number 0forNum2:number 0//执行测试async index(){// 生成菜单列表// const menuList await this.generateMenuList([], 4000);const men…

2024年腾讯云免费服务器最新申请入口链接

腾讯云免费服务器申请入口 txybk.com/go/free 免费服务器可选轻量应用服务器和云服务器CVM,轻量配置可选2核2G3M、2核8G7M和4核8G12M,CVM云服务器可选2核2G3M和2核4G3M配置,腾讯云百科txybk.com分享2024年最新腾讯云免费服务器申请入口、限制…

【数值计算方法】4 / 数值积分

一、理解插值 二、几种理解方式: 1、对插值函数进行积分得到; 2、使用另一个函数近似;(三角函数、指数函数都是可以的...) 3、使用拉格朗日插值;----代数精度法(权和为1) 三、

深度神经网络(DNN)

通过5个条件判定一件事情是否会发生,5个条件对这件事情是否发生的影响力不同,计算每个条件对这件事情发生的影响力多大,写一个深度神经网络(DNN)模型程序,最后打印5个条件分别的影响力。 示例 在深度神经网络&#xf…

【深度学习】Dropout、DropPath

一、Dropout 1. 概念 Dropout 在训练阶段会让当前层每个神经元以drop_prob( 0 ≤ drop_prob ≤ 1 0\leq\text{drop\_prob}\leq1 0≤drop_prob≤1)的概率失活并停止工作,效果如下图。 在测试阶段不会进行Dropout。由于不同批次、不同样本的神…

open Gauss 数据库-06 openGauss数据库安全指导手册5.0.0

发文章是为了证明自己真的掌握了一个知识,同时给他人带来帮助,如有问题,欢迎指正,祝大家万事胜意! 目录 前言 openGauss数据库安全指导 1 用户权限控制 1.1 实验介绍 1.1.1 关于本实验 1.1.2 实验目的 1.2 用户…