暂无图片
分享
Oracle
2023-05-21
synchronous_commit 五种级别的区别,为什么备库的查询不能立马看到主库插入的数据

synchronous_commit 五种级别的区别,为什么备库的查询不能立马看到主库插入的数据

收藏
分享
2条回答
默认
最新
T
Ty3306

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
暂无图片
Oracle
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏