指的是对于用户来说提交的事务,数据是可靠的,即使数据库crash了,在硬件完好的情况下,也能恢复回来。walwriter是负责将wal buffer flush到持久化设备的进程,同时它会更新一个全局变量,记录已经flush的最大的LSN号。backend process 同样需要等待对应LSN flush到磁盘后才会返回给用户提交成功的信号。后面会讲到如何将同步级别降级为异步。off 表示commit 时不需要等待wal 持久化。提醒一点, synchronous_commit 的任何一种设置,都不影响wal日志持久化必须先于shared buffer脏数据持久化。一旦出现网络抖动,或者sync standby节点故障,将导致同步事务进入等待状态。方法1的降级需要对已有的正在等待wal sync的pid使用cancel进行处理,有点不人性化。SyncRepWaitForLSN for循环中,加一个判断,如果发现全局变量sync commit变成local, off了,则告警并退出。
暂无评论