云服务器网:购买云服务器和VPS必上的网站!

postgresql中wal_level的三个参数用法说明

wal_level中有三个主要的参数:minimal、archive和hot_standby
1、minimal是默许的值,它仅写入崩溃或突发关机时所需要的信息(不建议使用)。
2、archive是增加wal归档所需的日志(最经常使用)。
3、hot_stan

wal_level中有三个主要的参数:minimal、archive和hot_standby

1、minimal是默许的值,它仅写入崩溃或突发关机时所需要的信息(不建议使用)。

2、archive是增加wal归档所需的日志(最经常使用)。

3、hot_standby是在备用服务器上增加了运行只读查询所需的信息,一般实在流复制的时候使用到。

补充:postgresql WAL相关参数

配置文件

# – Settings –
wal_level = minimal # minimal, replica, orlogical
# (changerequires restart)
#fsync = on # flush data to disk for crash safety
# (turningthis off can cause
# unrecoverable datacorruption)
#synchronous_commit =on # synchronization level;
# off, local,remote_write, remote_apply
,or on
#wal_sync_method =fsync # the default is thefirst option
# supported by theoperating system:
# open_datasync
# fdatasync (default on Linux)
# fsync
# fsync_writethrough
# open_sync
full_page_writes =on # recover from partial page writes
#wal_compression =off # enable compression of full-pagewrites
#wal_log_hints =off # also do full pagewrites of non-critic
al updates
# (change requiresrestart)
#wal_buffers = ⑴ # min 32kB, ⑴ sets basedon shared_buffers
# (change requiresrestart)
#wal_writer_delay = 200ms # 1⑴0000 milliseconds
#wal_writer_flush_after= 1MB # 0 disables

#commit_delay = 0 # range 0⑴00000, inmicroseconds
#commit_siblings =5 # range 1⑴000
# – Checkpoints –
#checkpoint_timeout =5min # range 30s⑴d
#max_wal_size = 1GB
#min_wal_size = 80MB
#checkpoint_completion_target= 0.5 # checkpoint target duration,0.0 – 1.0
#checkpoint_flush_after= 0 # 0 disables #default is 256kB on linux, 0 otherwise
#checkpoint_warning =30s # 0 disables

wal_level

控制wal存储的级别。wal_level决定有多少信息被写入到WAL中。默许值是最小的(minimal),其中只写入从崩溃或立即关机中恢复的所需信息。replica 增加 wal 归档信息同时包括只读服务器需要的信息。(9.6 中新增,将之前版本的 archive 和 hot_standby合并)

fsync

该参数直接控制日志会不会先写入磁盘。默许值是ON(先写入)。开启该值时表明,更新数据写入磁盘时系统一定要等待WAL的写入完成。可以配置该参数为OFF,更新数据写入磁盘完全不用等待WAL的写入完成,没有了等待的时间,明显接下来的工作能够更早的去做,节省了时间,提高了性能。其直接隐患是没法保证在系统崩溃时最近的事务能够得到恢复,也就没法保证相关数据的真实与正确性。

synchronous_commit

该参数表明会不会等待WAL完成后才返回给用户事务的状态信息。默许值是ON,表明一定要等待WAL完成后才返回事务状态信息。配置OFF值能够更快的反馈回事务状态。因参数只是控制事务的状态反馈,因此对数据的一致性不存在风险。但事务的状态信息影响着数据库的全部状态。该参数可以灵活的配置,对业务没有严谨要求的事务可以配置为OFF,能够为系统的性能带来不小的提升。

wal_sync_method

WAL 写入磁盘的控制方式,默许值是fsync。可选用值:open_datasync,fdatasync,fsync_writethrough,fsync,open_sync。一般采取默许值便可,对裸装备或文件系统的可选配置,在实际的使用中所带来的方便相对fsync很有限。

full_page_writes

参数表明会不会将全部page写入WAL。postgresql中数据处理进程中的数据只保存在内存和WAL中,在内存中的全部page中包括更新提交和没有提交的,如果不将全部page写入WAL中,在介质恢复的时候WAL中记录的数据不足以实现完全的恢复(说白了就是没法实现介质恢复时事务的回滚)。

wal_buffers

用于寄存WAL数据的内存空间,最小32K。

wal_writer_delay

WAL writer进程的间歇时间。默许值是200ms。准确的配置应当根据本身系统的运行状态。如果时间太长可能造成WAL buffer的内存不足;反之太小将会引发WAL的不断的写入,对磁盘的IO也是很大考验。

wal_writer_flush_after

wal write的字节数超过配置的阈值(wal_writer_flush_after)时,触发fsync,默许值为1MB,如果设置为0,关闭该特性(9.6版本新增的参数)

commit_delay

表示一个已提交的数据在WAL buffer中寄存的时间,单位ms,默许值是0,不用延迟。非0值表示可能存在多个事务的WAL同时写入磁盘。如果设置为非0,表明了某个事务履行 commit后不会立即写入WAL中,而仍寄存在WAL buffer中,这样对后面的事务申请WAL buffer时非常不利,特别是提交事务较多的高峰期,可能引发WAL buffer内存不足。如果内存足够大,可以尽可能延长该参数值,能够使数据集中写入这样下降了系统的IO,提高了性能。一样如果此时崩溃数据面临着丢失的危险。

commit_siblings

该参数还决定了commit_delay的有效性。系统默许值是5。表示当一个事务发出提交要求,此时数据库中正在履行的事务数量大于5,则该事务将等待一段时间(commit_delay的值),反之,该事务则直接写入WAL。

checkpoint_timeout

生成检查点的最大的间隔时间。

checkpoint_completion_target

参数表示checkpoint的完成目标,系统默许值是0.5,也就是说每一个checkpoint需要在checkpoints间隔时间的50%内完成。

PostgreSQL 9.5 废弃了checkpoint_segments 参数, 并引入max_wal_size 和 min_wal_size 参数, 通过max_wal_size和checkpoint_completion_target参数来控制产生多少个XLOG后触发检查点, 通过min_wal_size和max_wal_size参数来控制哪些XLOG可以循环使用.

min_wal_size最小的wal 空间

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有毛病或未斟酌完全的地方,望不吝赐教。

本文来源:https://www.yuntue.com/post/153402.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注