一、参数说明
1. synchronous_commit
含义:表示当前事务的同步方式。
通常情况下,一个事务产生的日志的同步顺序如下:
- 主机将日志内容写入本地内存。
- 主机将本地内存中的日志写入本地文件系统。
- 主机将本地文件系统中的日志内容刷盘。
- 主机将日志内容发送给备机。
- 备机接受到日志内容,存入备机内存。
- 备机将备机内存中的日志写入备机文件系统。
- 备机将备机文件系统中的日志内容刷盘。
- 备机回放日志,完成对数据文件的增量更新。
而 synchronous_commit 的取值影响着主机提交以及主备机间同步提交的方式,具体如下:
- on
表示主机事务提交需要等待备机将对应日志刷新到磁盘。当为on且开启了同步备库的时候(设置了synchronous_standby_names),必须要等事务日志刷新到本地磁盘,并且还要等远程备库也提交到磁盘才能返回客户端已经提交。
- off
表示主机事务提交无需等待主机自身将对应日志刷新到磁盘,通常也称为异步提交。
- local
表示主机事务提交需要等待主机自身将对应日志刷新到磁盘,通常也称为本地提交,此时不关心备机的情况。
- remote_write
表示主机事务提交需要等待备机将对