后端一个疑问

我感觉binlog也可以用来故障恢复啊,那为什么还需要redolog勒有大佬能给我解答一下吗#牛客AI配图神器#
全部评论
也可以做,但是binlog保存的是全量的数据。他不知道哪些页属于脏页(写入物理页但没写回磁盘),使用binlog恢复我的理解是需要使用所有binlog数据恢复。而redolog记录了哪些页为脏页。重做的时候只需要重做这些数据就行。效率会高很多
4 回复 分享
发布于 昨天 18:07 广东
binlog是记录的是sql级别的日志,redolog是物理级别的日志,重做肯定是redolog快
4 回复 分享
发布于 昨天 16:06 贵州
binlog并不是一个原子的操作,一条binlog可能对应多条redo log,如果只使用binlog,那么需要先落盘binlog,再落盘数据,如果此时数据只落盘了一部分就挂了,恢复时无法通过binlog进行重做。
点赞 回复 分享
发布于 今天 10:30 香港
一般都是redolog搭配binlog进行恢复的 属于二阶段提交 分成Prepare 阶段​​,首先数据修改写入缓冲区,生成 redo log 并刷盘,状态标记为 ​​prepare​​,此时 bin log ​​还没写入​​,事务未提交。Commit 阶段​​:将事务的 SQL 操作写入 bin log 并刷盘。将 redo log 状态更新为 ​​commit​​,标志事务提交完成 所以在恢复的时候 ,会按顺序扫描 redo log 并检查 binlog如果检查redo log 状态为 commit​​ 就直接不用管binlog了因为事务肯定是提交了直接重做数据业 如果 redo log 状态为 prepare​​,那么就要再去检查binlog 如果​​binlog 完整,那么就提交事务,重做数据 如果binlog不完整 就回滚事务
1 回复 分享
发布于 今天 10:08 四川
但是主从不也是用的binlog吗
点赞 回复 分享
发布于 今天 09:32 重庆
用binlog也行,满足两个前提,1,MySQL一开始使用的时候就开启binlog,且中途无异常,2,先把数据库中的数据清空
点赞 回复 分享
发布于 昨天 19:42 浙江
个人理解,binlog慢
点赞 回复 分享
发布于 昨天 11:22 江苏
redo log:解决事务持久性 & crash recovery(快,物理级别)。 binlog:用于主从复制、备份恢复(逻辑级别,跨存储引擎)。 再了解一下两阶段提交你就懂了
点赞 回复 分享
发布于 08-25 22:02 重庆

相关推荐

昨天 22:06
东北大学 Java
20min 实习怎么用redis+token实现登录的?Redis缓存token这种存储方式的弊端,存在什么安全隐患?这种方式的弊端后续怎么去解决?Redis缓存token业务层面会有哪些风险,业务层面的风险怎么解决?Redis高并发、低耗时的底层是因为什么机制?Redis主从同步的逻辑是什么,主从同步有哪几种方式,持久化的方式,最常用哪些方式?Redis支持事务吗,怎么支持?慢查询怎么定位和规避,在日常开发情况下,怎么做规避,有没有关于SQL的最佳实践、最佳原理。20min场景题在抖音里面有一个关注功能,设计关注跟取消关注功能,怎么去设计,包括底层的设计、存储设计。对于用户的规模不一样的情况(小博主、大博主),底层在设计的时候会有什么差异?一个网红博主,发了一条动态,怎么去发送给粉丝?上游怎么去消费发的这些消息?5min开放题未来职业规划+个人优势10+min手撕输出一个数组的全排列 a b c -> abc acb bac bca cab cba第二天挂基本全是场景题和设计方法,看似很开放,但还是要答出来面试官想听到的点,我感觉我说的挺对的,实际上可能最开始回答的方向就不对,讲了很多系统设计上的思考,忽视了业务方向的思考。难难难,实在是太难了,有一种有力没处使的感觉。已经换部门重新从一面开始了
求offer的花生米...:面字节太累了,剪映飞书全都是最后一轮挂了,心态都炸了
查看12道真题和解析
点赞 评论 收藏
分享
评论
2
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务