设置
wal_level
参数说明:设置写入WAL信息量的级别。
参数类型:POSTMASTER
取值范围:枚举类型
- minimal
优点:一些重要操作(包括创建表、创建索引、簇操作和表的复制)都能安全的跳过,这样就可以使操作变得更快。
缺点:WAL仅提供从数据库服务器崩溃或者紧急关闭状态恢复时所需要的基本信息,无法用WAL归档日志恢复数据。
- archive
- hot_standby
- 这个参数进一步增加了在备机上运行的SQL查询的信息,这个参数只能在数据库服务重新启动后生效。
- 为了在备机上开启只读查询,wal_level必须在主机上设置成hot_standby ,并且备机必须打开hot_standby参数。hot_standby和archive级别之间的性能只有微小的差异,如果它们的设置对产品的性能影响有明显差异,欢迎反馈。
默认值:hot_standby
- 如果需要启用WAL日志归档和主备机的数据流复制,必须将此参数设置为archive或者hot_standby。
- 如果此参数设置为archive,hot_standby必须设置为off,否则将导致数据库无法启动。
synchronous_commit
参数说明:设置当前事务的同步方式。
参数类型:USERSET
取值范围:枚举类型
- on表示将备机的同步日志刷新到磁盘。
- off表示异步提交。
- local表示为本地提交。
- remote_write表示要备机的同步日志写到磁盘。
- remote_receive表示要备机同步日志接收数据。
默认值:on
wal_buffers
参数说明:设置用于存放WAL数据的共享内存空间的XLOG_BLCKSZ数,XLOG_BLCKSZ的大小默认为8KB。
参数类型:POSTMASTER
取值范围:-1~218,单位为8KB。
- 如果设置为-1,表示wal_buffers的大小随着参数shared_buffers自动调整,为shared_buffers的1/32,最小值为8个XLOG_BLCKSZ,最大值为2048个XLOG_BLCKSZ。
- 如果设置为其他值,当小于8时,会被默认设置为8;当大于2048的时,会被强制设置为2048。
默认值:16MB
设置建议:每次事务提交时,WAL缓冲区的内容都写入到磁盘中,因此设置为很大的值不会带来明显的性能提升。如果将它设置成几百兆,就可以在有很多即时事务提交的服务器上提高写入磁盘的性能。根据经验来说,默认值可以满足大多数的情况。
commit_delay
参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。
参数类型:USERSET
取值范围:整型, 0~100000(微秒),其中0表示无延迟。
默认值:0
- 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter进程周期性写入磁盘。
- 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟就是在浪费时间。
commit_siblings
参数说明:当一个事务发出提交请求时,如果数据库中正在执行的事务数量大于此参数的值,则该事务将等待一段时间(commit_delay的值),否则该事务则直接写入WAL。
参数类型:USERSET
取值范围:整型, 0~1000
默认值:5
enable_xlog_group_insert
参数说明:控制WAL日志是否启动group的插入方式。仅鲲鹏架构支持。
参数类型:SIGHUP
取值范围:布尔型
- on表示开启。
- off表示关闭。
默认值:on
wal_compression
参数说明:控制是否对FPI页面进行压缩。
参数类型:USERSET
取值范围:布尔型
- on表示开启FPI压缩。
- off表示关闭FPI压缩。
默认值:off
- 当前压缩算法为zlib,暂不支持设置为其他压缩算法。
- 对于通过从低版本升级成为当前版本的集群,此参数默认关闭(off)。如果用户需要,可以通过gs_guc命令打开FPI压缩功能。
- 当前版本若为全新安装版本,此参数默认打开(on)。
- 从低版本升级上来的集群,如果手动开启了此参数,不允许再进行集群回滚操作。
wal_compression_level
参数说明:当打开wal_compression参数时,设置zlib压缩算法的压缩级别。
参数类型:USERSET
取值范围:整型, 0~9
- 0表示不压缩。
- 1表示最低的压缩率。
- 9表示最高的压缩率。
默认值:9