开发者社区> 问答> 正文

postgresql同步流复制和异步流复制模式的区别

已解决

从参数配置上来看,只有 synchronous_standby_names 参数需要配置,和recovery.conf 文件中多加了一个application_name。

从测试结果来看,如果 synchronous_commit = on ,
两者的区别是:1、同步必须等到备库写盘才能返回成功,而异步只要本地写盘就ok。
2、同步的话备库down掉,主库会挂起,而异步没影响。

如果synchronous_commit = off,两者则基本没区别。备库挂了主库依然都能用。

如果synchronous_commit = off,那同步流复制没必要使用了吧?

展开
收起
pis-j 2016-03-31 09:50:18 7082 0
1 条回答
写回答
取消 提交回答
  • 公益是一辈子的事, I am digoal, just do it. 阿里云数据库团队, 擅长PolarDB, PostgreSQL, DuckDB, ADB等, 长期致力于推动开源数据库技术、生态在中国的发展与开源产业人才培养. 曾荣获阿里巴巴麒麟布道师称号、2018届OSCAR开源尖峰人物.
    采纳回答

    synchronous_commit 是支持事务级的参数。 用户可以根据会话的级别来配置。
    同步的原理是,事务提交时会写一笔commit xlog, 这上面有LSN标记,根据synchronous_commit 判断是否需要进入等待队列,同时主节点会根据从同步流复制节点收到的已接受到的LSN,释放等待队列中的会话。

    2019-07-17 18:36:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgreSQL 物联网六脉神剑 立即下载
PostgreSQL在哈啰的实践-周飞 立即下载
PostgreSQL高并发数据库应用数据 立即下载

相关镜像