2:一条SQL更新语句是如何执行的?
redolog(重做日志):作为:酒店 黑板 账本 角色中的黑板
在酒店突然停电的情况下,可以保证黑板的内容不丢失,可以后续记录(提交)到账本,crash-safe能力。
binlog(归档日志):记录修改的SQL语句
区别:
redolog:空间有限,物理日志,在什么数据页上做了什么修改
binlog:空间追加,逻辑日志,修改的原始语句
在执行器后的逻辑
redolog与binlog的先后提交问题?
redolog先提交,crash,主数据库修改:某行数据update成true ,binlog没有记录,使用binlog备份数据库,从数据库该行数据仍为 flase
binlog先提交,crash,binlog有记录为:某行数据update成true,redolog没有写,主数据库仍为flase,使用binlog备份数据库,从数据库该行数据为true
解决先后提交问题的方法:
redolog先设置为预提交,最后redolog与binlog一起提交
redolog :主要作为于更新主数据库,并防止主数据库的crash
binlog :主要作用于备份从库,或者恢复主数据库
网友评论