陈老师:1415968548 郑老师:2735197625 乐老师:354331153
客服热线:
19941464235/19906632509(微信同号)

客服微信

【PostgreSQL PGCE-091题目解析35】在PostgresSQL 中,WAL日志保存在pg_wal中,每个wal文件默认是多大?

作者:炎燚小寶
原创
发布时间:2023-12-22 17:56
浏览量:233

考试科目:PGCE-E-091

考试题量:44 道单项选择题、29 道多项选择题(每题 2 分)

通过分数:60%

考试时间:60min

本文为云贝教育刘峰(微信:yunbee_DBA)原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载



在PostgresSQL 中,WAL日志保存在pg_wal中,每个wal文件默认是多大?

A、8MB

B、16MB

C、32MB

D、64MB


参考答案:B




解析


一、查看WAL默认情况下的配置

1)WAL日志的大小在安装PG时的参数指定

./configure --with-wal-segsize=64MB


如果不指定,默认是16M

2)在默认参数的PG环境,查看参数

postgres=# show wal_segment_size;
wal_segment_size
------------------
16MB
(1 row)


3)进入文件目录查看:$PGDATA/pg_wal

[postgres@ora19c01 pg_wal]$ du -sh *
16M 000000010000000000000034
16M 000000010000000000000035
16M 000000010000000000000036
16M 000000010000000000000037
16M 000000010000000000000038
16M 000000010000000000000039
16M 00000001000000000000003A
16M 00000001000000000000003B
16M 00000001000000000000003C
16M 00000001000000000000003D
16M 00000001000000000000003E
16M 00000001000000000000003F
16M 000000010000000000000040
16M 000000010000000000000041
16M 000000010000000000000042
16M 000000010000000000000043
16M 000000010000000000000044
16M 000000010000000000000045
16M 000000010000000000000046
16M 000000010000000000000047
16M 000000010000000000000048
16M 000000010000000000000049
16M 00000001000000000000004A
16M 00000001000000000000004B
16M 00000001000000000000004C
16M 00000001000000000000004D
16M 00000001000000000000004E
16M 00000001000000000000004F
16M 000000010000000000000050
16M 000000010000000000000051
16M 000000010000000000000052
16M 000000010000000000000053
16M 000000010000000000000054
16M 000000010000000000000055
16M 000000010000000000000056


二、如何修改PG的WAL日志大小

1.检查WAL日志文件大小

a) 查看参数wal_segment_size

psql -c "show wal_segment_size"


b) 检查WAL日志在文件系统体积

 ls -lh $PGDATA/pg_wal/


c) 通过数据字典查询

SELECT name, size FROM pg_ls_waldir() where name not like '%history' and name not like '%backup';


2.停止PG服务

systemctl stop postgresql-15.service
或
pg_ctl stop -D $PGDATA


3.修改WAL文件大小

 pg_resetwal -D $PGDATA --wal-segsize=64


大小以 MB 为单位。默认值为 16。参数可设置在 1 到 1024 之间。

4.启动PG服务

systemctl start postgresql-15.service
或
pg_ctl start -D $PGDAT


启动失败,提示

waiting for server to start....2023-11-21 19:56:58.931 CST [45034] FATAL: "min_wal_size" must be at least twice "wal_segment_size"


修改参数再次启动

修改前
[postgres@ora19c01 data]$ cat postgresql.conf | grep min_wal
min_wal_size = 80MB

修改后
[postgres@ora19c01 data]$ cat postgresql.conf | grep min_wal
min_wal_size = 128MB


5.重复步骤 1 并查看新的 WAL 文件设置。

启动失败,提示

waiting for server to start....2023-11-21 19:56:58.931 CST [45034] FATAL: "min_wal_size" must be at least twice "wal_segment_size"


修改参数再次启动



PostgreSQL PGCE考试为理论考试,需通过两门考试才能拿到“PostgreSQL PGCE证书”。



以下是PostgreSQL官网的考试费,可以添加云贝教育的课程顾问老师微信19941464235或者19906632509,咨询有优惠


PostgreSQL证书如下 合格考生公布:考后不超过 5 个工作日  “开源软件联盟 PostgreSQL 分会”公众号发布  证书寄送:考后统一寄送至培训机构)



云贝教育有专业的PostgreSQL PGCE认证培训课程,想快速通过考试的同学可以扫码联系老师咨询(点击文字转跳至PostgreSQL PGCE纲)