2023-05-21
synchronous_commit 五种级别的区别,为什么备库的查询不能立马看到主库插入的数据
synchronous_commit 五种级别的区别,为什么备库的查询不能立马看到主库插入的数据
收藏
分享
2条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
synchronous_commit 五种级别的区别
首先要看节点是单实例还是主从架构,两者的可用级别和含义是不一样的。
单实例
可用级别为off、on、local,并且此时on和local含义是一样的
off:表示提交事务时,不用等相应WAL数据写入WAL文件,即可向客户端返回成功(异步提交)
on和local:表示提交事务时,需要等相应WAL数据写入WAL文件,才向客户端返回成功(同步提交)
主从架构
off:同上
local:同上
remote_write:主库提交事务时需要等相应WAL数据写入从库操作系统缓存中,才向客户端返回成功(同步流复制)。
on:主库提交事务时需要等相应WAL数据写入从库WAL文件中,才向客户端返回成功(同步流复制)。
remote_apply:主库提交事务时需要等相应WAL数据需在从库中replay完,才向客户端返回成功(同步流复制)。
为什么备库的查询不能立马看到主库插入的数据
WAL日志的发送、接收、write、flush、replay阶段都可能有延迟,除非同步级别设为remote_apply,否则主库提交不意味从库已经应用完日志,可以查到对应数据。
评论
有用 0
墨值悬赏