本篇文章为你整理了MySql日志概述(mysql日志类型有哪些)的详细内容,包含有mysql日志的作用 mysql日志类型有哪些 mysql四种常见日志 mysql日志记录 MySql日志概述,希望能帮助你了解 MySql日志概述。
存储引擎里用的是redo日志和undo日志,服务层用的是bin日志
Redo日志
意思就是在存日志时候,如果要存在磁盘,肯定需要开启io,每次都要开启关闭io,所以它每次都是先把日志放在内存,然后读取到磁盘,但有个问题,如果突然断电了,日志难道要丢失吗?它把日志存在内存时候,干了这么一件事。。。
在每次把日志存放在内存时候,经过log buffer,它是用户的某一个内存空间,里面分redo和undo,然后经过user space和kernel space,user space是用户控制的,kernel space是内核控制的,也就是经过OS buffer操作系统,就是从一块缓存拷贝到另一块缓存,这个速度肯定非常快,并不是直接从内存写到磁盘空间。然后在OS buffer会经过fsync()方法,写入到磁盘。
所以在每次如果真的断电的话,redo日志会把日志恢复,避免数据丢失。日志每次也不是说有一个就赶紧存到磁盘,这样效率很低,它会有一个缓存机制,有一定数据量一并写入磁盘。
执行顺序图:
Undo日志
redo表示在每次数据写到磁盘时候保证原始性,undo表示要么成功要么失败
Bin日志
binlog就是归档日志
之前早时候携程的数据库丢失数据了,有的说被黑客攻击了,有的说自己员工不小心删除了,不管怎么回事,这样的结果最终想要的是恢复数据;
binlog可以恢复数据,就算数据丢了,如果binlog日志文件不丢,就能恢复数据!
注意:如果你的binlog没开启的话,默认是不开启的。
命令行输入:show variables like %log_%: 然后回车
可以看到binlog是关闭的,如果要开启需要设置成ON
Redo log两阶段提交
以上就是MySql日志概述(mysql日志类型有哪些)的详细内容,想要了解更多 MySql日志概述的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。