重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 309|回复: 0
打印 上一主题 下一主题

PostgreSQL 中 pg_settings 与 pg_file_settings 的区别

[复制链接]
跳转到指定楼层
楼主
发表于 2025-10-12 13:54:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在日常运维中,经常需要确认参数到底是不是已经生效,这时候 pg_settings 和 pg_file_settings 是两个容易混淆的视图

1. pg_settings

- 展示的是 当前实例实际生效的参数值。
- 这些值可能来自:默认值、postgresql.conf、ALTER SYSTEM、或者 SET 动态修改。
- 可以理解为 现在数据库里正在用的配置。

2. pg_file_settings

- 展示的是 配置文件里写的参数内容(通常是 postgresql.conf)。
- 字段 applied 表示该参数是否被实例成功应用。
- 如果是 applied=f,并伴随 error: setting could not be applied,一般是因为:该参数需要 重启数据库 才能生效(如 archive_mode、shared_preload_libraries),或者参数写错、路径错误等。

3. 如何理解

- 看实时生效情况 → 查 pg_settings
- 看配置文件写了什么、是否应用成功 → 查 pg_file_settings
- 如果配置改了但没生效,可以通过 applied=f 快速发现。

4. 常见场景举例

开启 pg_stat_statements 时,在 postgresql.conf 里加上:shared_preload_libraries = 'pg_stat_statements',在 pg_file_settings 里会看到 applied=f,提示需要重启,如下图所示

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 21:20 , Processed in 0.241036 second(s), 23 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表