WAL_LEVEL=LOGICAL

  • Post author:
  • Post category:其他


wal_level (enum)

wal_level决定有多少信息被写入到WAL中。 默认值是最小的,其中写入唯一从崩溃或立即关机中恢复的所需信息。 archive补充WAL归档需要的日志记录,

以及 hot_standby进一步增加在备用服务器上运行只读查询所需的信息 。这个参数只能在服务器启动时设置。

在最小级别中,安全地忽略一些批量操作的WAL-日志, 这可以使那些操作快很多(参阅第 14.4.7 节)。 这种优化可以应用到:

CREATE TABLE AS

CREATE INDEX

CLUSTER

COPY into tables that were created or truncated in the same transaction

但是最小的WAL不包含从基本的备份和WAL日志中重建数据的足够信息, 所以archive或者hot_standby级别必须用来启动 WAL归档(archive_mode)和流复制。

在hot_standby级别,相同的信息被记录为archive, 加上需要重建从WAL运行的事务状态信息。 为了在备用服务器上启用只读查询,主库上wal_level必须设置为hot_standby,

必须启动备库上的hot_standby。 使用hot_standby和archive级别之间的性能几乎没有可测量的差异 ,如果任何生产的影响是明显的,则是值得欢迎的。

[postgres@zhaopin-200-43 /data/postgresql/rdrc_94/data/pg_log]$ more postgresql-2015-11-25_02.log

[    2015-11-25 02:37:35.583 UTC 115397 56551eef.1c2c5 1 0]LOG:  database system was shut down at 2015-11-25 02:37:34 UTC

[    2015-11-25 02:37:35.594 UTC 115397 56551eef.1c2c5 2 0]LOG:  MultiXact member wraparound protections are now enabled

[    2015-11-25 02:37:35.597 UTC 115395 56551eef.1c2c3 3 0]LOG:  database system is ready to accept connections

[    2015-11-25 02:37:35.597 UTC 115401 56551eef.1c2c9 1 0]LOG:  autovacuum launcher started

postgres=# select * from pg_