- off
提交动作不会等待transaction record刷新到硬盘就完成。
- local
提交动作会等到transaction record flush到本地硬盘后再完成。
- on (默认)
如果该参数设置为on,并且通过synchronous_standby_names配置了同步备库,那么COMMITs将等待同步备库确认数据被flush到硬盘后才会完成。目的是确保数据被保存在了两个或更多的地方。
但是如果备库停止响应,那么主库的COMMITs将会hang住,直到手动处理这种故障。为了防止这种情况,可以添加第三个数据库作为同步备库,当第一个备库发生故障,主库可以使用第二个备库。
- remote_write
此参数值表示,主库事务将等待备库上数据写入到disk cache后才会完成。如果持久化这个数据,应该将这个data cache flush到硬盘。所以,这个参数配置存在一定的丢失数据风险。
不建议配置此参数,除非对性能的要求大于丢失数据的风险。
- remote_apply
此参数表示,COMMITs等待同步备库将事务写入到硬盘,并且applied后才会完成。绝对安全、绝对同步。