当前位置: 首页 > news >正文

如何建设一个查询网站湖南省军区强军网网站群建设项目

如何建设一个查询网站,湖南省军区强军网网站群建设项目,phpcms网站音乐代码存放在什么位置,企业网站推广的方法包括MySQL是一个广泛使用的关系型数据库管理系统#xff0c;它通过一系列的日志来保证数据的一致性和持久性。在MySQL中#xff0c;有三个重要的日志组件#xff0c;它们分别是redo log#xff08;重做日志#xff09;、undo log#xff08;回滚日志#xff09;和binlog它通过一系列的日志来保证数据的一致性和持久性。在MySQL中有三个重要的日志组件它们分别是redo log重做日志、undo log回滚日志和binlog二进制日志。在下面的博客内容中我将介绍这三个组件的实现原理。 MySQL Redo Log重做日志 重做日志redo log是MySQL的一种事务日志它用于恢复已经提交的事务对数据库所做的修改。它的实现原理如下 持久性重做日志是以一种顺序追加的方式写入到磁盘上的一个特殊文件中这种方式可以提高写入性能。重做日志的写入是通过写入日志缓冲区log buffer来完成的当事务提交时相关的重做日志记录会被刷新到磁盘上的重做日志文件。 循环写入重做日志采用循环写入的方式即当写满了日志文件后会回到文件开头继续写入这样可以循环利用已经写满的空间。重做日志会定期进行检查点checkpoint将已经提交的事务的日志记录持久化到磁盘上并释放相应的空间。 崩溃恢复当数据库发生崩溃或意外断电等情况时MySQL可以利用重做日志进行崩溃恢复。在数据库重新启动时通过重做日志中记录的操作可以将未持久化到磁盘上的事务修改重新应用到数据库中从而恢复数据库到崩溃之前的状态。 MySQL Undo Log回滚日志 回滚日志undo log是MySQL的另一种事务日志它用于实现事务的原子性和一致性。它的实现原理如下 事务回滚当一个事务需要回滚时MySQL可以利用回滚日志来撤销该事务对数据库所做的修改。回滚日志中记录了每个事务所做的修改操作的逆操作通过撤销这些逆操作可以将数据库恢复到事务开始之前的状态。 MVCC支持回滚日志还用于支持MySQL的多版本并发控制MVCC机制。在MVCC中每个事务在开始时都会创建一个对应的回滚日志用于存储该事务所做的修改。其他事务在读取数据时会根据回滚日志中的信息来判断是否可以看到该数据的修改。 垃圾回收回滚日志中的记录并不是永久存储的一旦事务提交或回滚完成相应的回滚日志记录就可以被清除。MySQL会定期进行垃圾回收操作将已经不再需要的回滚日志记录删除以释放空间。 MySQL Binlog二进制日志 二进制日志binlog是MySQL用于记录数据库的所有修改操作的日志。它的实现原理如下 格式与记录二进制日志以一种特定的格式记录了数据库的修改操作包括对表的插入、更新和删除等操作。每个记录都包含了操作类型、影响的表和修改的数据等信息。 复制与恢复二进制日志可以用于数据库的备份和恢复。通过将二进制日志应用到一个空的MySQL实例中可以将该实例恢复到与原始实例相同的状态。二进制日志还可以用于数据库的复制即将一个MySQL实例的修改操作同步到其他实例上。 断点续传二进制日志支持断点续传的功能。当数据库出现异常崩溃或意外断电时可以通过二进制日志将数据库恢复到崩溃之前的状态并继续之后的操作从而实现断点续传的效果。 总结起来MySQL的redo log、undo log和binlog是三个重要的日志组件它们分别用于数据库的恢复、回滚和备份等功能。它们的实现原理有所不同但都起着保证数据一致性和持久性的重要作用。 实现日志后的更新流程 数据写过程上图可能存在数据丢失看binlog和redolog日志的写入机制是否存在将多次缓存一起fsync如何保证一定不丢失使用WAL机制 基于2PC的一致性保障 保证binlog和redolog的一致性 假设Redo Log刷入成功了但是还没来得及刷入Binlog MySQL就挂了。此时重启之后会发现Redo Log并没有Commit标识此时根据记录的XA事务找到这个事务进行回滚。 如果Redo Log刷入成功而且Binlog也刷入成功了但是还没有来得及将Redo Log从Prepare改成Commit MySQL就挂了此时重启会发现虽然Redo Log没有Commit标识但是通过XID查询到的Binlog却已经成功刷入磁盘了。 此时虽然Redo Log没有Commit标识MySQL也要提交这个事务。因为Binlog一旦写入就可能会被从库或者任何消费Binlog的消费者给消费。如果此时MySQL不提交事务则可能造成数据不一致。而且目前Redo Log和Binlog从数据层面上其实已经Ready了只是差个标志位。 Prepare阶段将Redo Log写入文件并刷入磁盘记录上内部XA事务的ID同时将Redo Log状态设置为Prepare。Redo Log写入成功后再将Binlog同样刷入磁盘记录XA事务ID。 Commit阶段向磁盘中的Redo Log写入Commit标识表示事务提交。然后执行器调用存储引擎的接口提交事务。这就是整个过程。 参考文章https://mp.weixin.qq.com/s/5i9wmJs4_Er7RaYfNnETyA
http://www.hkea.cn/news/14379301/

相关文章:

  • 订餐网站开发公司网站数据分析公司
  • 做学习交流网站自学网站开发哪个网站好
  • 网站改了标题会怎么样深圳做小程序的公司排名
  • 优惠卷网站建设怎么挣钱简易网页界面设计
  • 库尔勒北京网站建设甘肃网站建站系统平台
  • 信息发布推广平台全网最低价seo
  • 网站建设优化推广安徽常德住房和城乡建设局网站
  • 小白怎么做网站赚钱做网站最简单的
  • 英国网站域名垫江网站建设哪家好
  • 网站建设价格很 好乐云seowordpress双击返回顶部
  • 番禺移动网站建设wordpress的标题字怎么变
  • 网站开发的过程中遇到的难题网站建设都包括
  • 奥运网站模板一流的山西网站建设
  • 招聘网站费用怎么做分录wordpress 侧边栏 背景
  • 连锁租车网站源码wordpress镜像是什么
  • 敦煌做网站的公司电话一个wordpress多个网站
  • 网站拨测人员是干嘛的聊城网站案例
  • 西安网站建设熊掌wordpress分类数组
  • 做网站改变图片位置上海宏波工程咨询管理有限公司
  • 建设厅网站文件制作古城西安网页
  • 静宁县建设局网站网页设计自学要多久
  • 英迈思网站做不下去可以退款吗网站开发 小程序开发
  • 网站建设方案基本流程如何做生鲜配送网站生意
  • 做生意在哪个网站做上海整形网站建设
  • 做兼职哪个网站好如何建设企业网站ppt
  • 有教做素食的网站吗动漫制作专业介绍心得体会200字
  • 专业营销的网站建设公司天津快速关键词排名
  • 提供秦皇岛网站建设wordpress前台会员中心
  • H5酒店静态网站建设开题报告范文wordpress 协议
  • c2c网站代表和网址医院网站开发百度文库