关注
基于 binlog(二进制日志)的数据库系统通常会有一套刷盘(flush)机制,用于确保数据的持久化和一致性。当数据被写入到 binlog 中时,数据库系统通常会有以下策略:
1. **异步刷盘**:数据被写入 binlog 后,可能不会立即同步到磁盘。相反,数据库系统会缓冲一定量的写入操作,并在适当的时机批量刷盘,以提高性能。这意味着,尽管数据已经被记录到 binlog 中,但在异步刷盘完成之前,数据可能仍然留存在内存中。
2. **刷盘策略**:数据库系统可能采用不同的刷盘策略,如定时刷盘、达到一定的日志量后刷盘、或者根据系统负载情况动态调整刷盘频率等。这些策略的选择通常会考虑系统性能、可靠性和数据一致性之间的平衡。
如果主库在数据写入 binlog 但尚未完成刷盘的过程中宕机,可能会发生以下情况:
1. **未刷盘数据丢失**:如果主库宕机前尚未完成 binlog 的刷盘操作,那么这部分未刷盘的数据可能会丢失。这意味着部分写入操作可能无法被从 binlog 中恢复,导致数据不一致或者丢失。
2. **数据恢复**:为了尽量减少数据丢失的风险,数据库系统通常会采取一些措施来确保 binlog 数据的可靠性。例如,可以将 binlog 写入到持久化的存储介质(如磁盘)中,并定期进行备份。在主库宕机后,可以通过 replay binlog 的方式来恢复数据。在进行数据恢复时,可能会丢失宕机前未刷盘的部分数据,但可以尽量保证数据的一致性和完整性。
3. **备库数据同步**:如果存在备库(从库),备库通常会定期从主库同步 binlog 数据,并将其应用到自身的数据副本中。在主库宕机后,可以将备库提升为新的主库,以确保系统的可用性和持续性。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
04-05 23:07
福建师范大学 嵌入式软件开发 
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 毕业季,给职场新人一些建议 #
29960次浏览 500人参与
# 国企vs私企,怎么选? #
20464次浏览 168人参与
# 我的求职总结 #
31562次浏览 515人参与
# 辞职之后最想做的一件事 #
11881次浏览 173人参与
# 我的实习日记 #
2450505次浏览 25491人参与
# 选offer应该考虑哪些因素 #
22252次浏览 319人参与
# 小米硬件提前批进度交流 #
165060次浏览 1516人参与
# 为了秋招你都做了哪些准备? #
11231次浏览 169人参与
# 你想吐槽公司的哪些规定 #
18156次浏览 70人参与
# 晒一晒你收到的礼盒 #
63048次浏览 378人参与
# 薪资一样,你会选择去大厂还是小公司 #
16923次浏览 103人参与
# 硬件开发岗知多少 #
10350次浏览 111人参与
# 字节跳动工作体验 #
393317次浏览 4300人参与
# Offer比较,求稳定还是求发展 #
49790次浏览 241人参与
# 我的工作日记 #
100137次浏览 1281人参与
# 第一份工作应该只看薪资吗 #
139253次浏览 1462人参与
# 你想留在一线还是回老家? #
38758次浏览 455人参与
# 一人推荐一个值得去的通信/硬件公司 #
177061次浏览 1832人参与
# 你见过最离谱的招聘要求是什么? #
188907次浏览 1404人参与
# 工作中的卑微时刻 #
9190次浏览 56人参与