本文我们学习 PostgreSQL 配置文件 ,了解配置文件为什么要有两个、如何修改配置等内容以及修改配置文件缺省位置。

两个配置文件

我们对 postgresql.conf 不陌生,但PostgreSQL在 9.4及以上版本还提供了 postgresql.auto.conf 配置文件。那么为什么要两个配置文件呢?

当我们打开 postgresql.conf 查看内容,会看到非常多的参数。其他大多数被注释了,意味着自动被赋予缺省值。我们可以去掉注释编辑特定值,但这样比较难以跟踪变化。

为此,PostgreSQL提供了类似Oracle的命令 ALTER SYSTEM 修改服务器参数并被持久化,这样最新的修改即使在下次重启也会生效。

postgresql.conf位置迁移

首先通过下面命令查找配置文件位置:

$ psql -c "show config_file"
config_file
----------------------------------------
/var/lib/pgsql/13/data/postgresql.conf

默认配置文件和数据文件位置一致,但在不同操作系统上有差异。有时我们希望修改默认位置,可能是因为下面几个原因:

  • 保持目录的一致性(相对于不同OS或环境)
  • 团队约定
  • 配置文件或脚本为了方便备份

下面介绍如何修改配置文件的位置,但要提醒的是:配置文件要和数据文件一起备份。

  1. 停止PostgreSQL服务

    pg_ctl -D $PGDATA stop -mf
    
  2. 创建新的配置文件目录并赋权限

$ sudo mkdir -p /pgconfigs
$ sudo chown postgres:postgres /pgconfigs
$ sudo chmod -R 700 /pgconfigs
  1. 移动配置文件
mv $PGDATA/postgresql.conf /pgconfigs/postgresql.conf
  1. 使用新的配置启动数据库
$ pg_ctl -D $PGDATA -o '--config-file=/pgconfigs/postgresql.conf' start
  1. 验证配置文件
$ psql -c "show config_file"
config_file
----------------------------
/pgconfigs/postgresql.conf
(1 row)

postgresql.auto.conf

该文件保存最新的配置,当数据库服务重启时,postgresql.auto.conf 配置优先。当手动修改 postgresql.conf 文件时要非常小心,因为当在两个文件中都存在相同参数,前者修改无效。

当执行 ALTER SYSTEM … 命令时,改变会被自动写入 postgresql.auto.conf 文件,而不是 postgresql.conf文件。通过这种方法,即使几个月或几年之后,也能看到参数修改变化。

下面示例修改 work_mem 并加载:

$ psql -c "ALTER SYSTEM SET work_mem TO '8MB'"
$ pg_ctl -D $PGDATA reload
-- 或者
$ psql -c "select pg_reload_conf()"

为了判断参数修改后是否要重启服务,请看下面示例:

修改参数:

$ psql -c "ALTER SYSTEM SET shared_buffers TO '512MB'"

加载参数:

$ pg_ctl -D $PGDATA reload

查询 pg_setting 判断是否要重启:

$ psql -c "select name, setting, pending_restart from pg_settings
where name = 'shared_buffers'"
name | setting | pending_restart
----------------+---------+-----------------
shared_buffers | 16384 | t
(1 row)

我们看到 shared_buffers 参数正在等待重启,这意味着执行修改需要修改。最后执行重启命令:

$ pg_ctl -D $PGDATA restart -mf

总结

本文我们学习了 PostgreSQL 两个配置文件 postgresql.conf 及 postgresql.auto.conf ,一般修改参数尽可能通过postgresql.auto.conf 文件进行修改。

PostgreSQL 配置文件 postgresql.conf 及 postgresql.auto.conf相关推荐

  1. Unable to connect to PostgreSQL server: FATAL: missing or erroneous pg_hba.conf file\nHINT: See se

    经过一番的yum, 编译, 配置. 终于搭建了在CentOS上的apache + php + postgreSQL环境... 但是在php连接的时候总是报 Unable to connect to P ...

  2. Postgresql 配置文件详解

    如果要查看配置文件中的一些选项,则可以登录psql后 使用 命令来查看: show  选项名; show all:  #查看所有数据库参数的值 主要选项: 选项 默认值 说明 是否优化 原因 max_ ...

  3. 解决Laragon的nginx/apache重启后网站配置文件被修改的问题 - This file has been modified by another program - 文件auto.conf

    效果图 然后自定于的配置会被还原,例如: 问题所在 Laragon会自动管理"\laragon\etc\nginx\sites-enabled\auto.xxx.conf"配置文件 ...

  4. postgresql 创建用户_Liunx系统安装PostgreSQL数据库教程,值得程序员收藏pg安装教程

    介绍 PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS).PostgreSQL ...

  5. Linux移植之auto.conf、autoconf.h、Mach-types.h的生成过程简析

    在Linux移植之make uImage编译过程分析中分析了uImage文件产生的过程,在uImage产生的过程中,顺带还产生了其它的一些中间文件.这里主要介绍几个比较关键的文件 1.linux-2. ...

  6. php postgresql多条,PHP操作Postgresql封装类与应用完整实例

    本文实例讲述了PHP操作Postgresql封装类与应用.分享给大家供大家参考,具体如下: 这个类封装了一些常用的函数,原帖里面还有事务处理的内容,以后再学习吧. 类文件定义: class pgsql ...

  7. postgresql java类型_JAVA存取PostgreSQL大对象类型oid

    //VM配置:256M-512M //通过lo_import('文件路径')函数向oid字段插入二进制文件,通过(不会内存溢出). /** * * @author Liu Yuanyuan */ pr ...

  8. 荐书送书丨《PostgreSQL实战》、《PostgreSQL修炼之道:从小工到专家(第2版)》...

    墨墨导读:最近,相信大家都注意到数据库行业大事记,PostgreSQL在2020年的DB-Engines 排名中获得了比其他360个受监控数据库系统更多的受欢迎程度,获得"2020年度数据库 ...

  9. convert for mysql_DBConvert for MySQL PostgreSQL下载|DBConvert for MySQL PostgreSQL官方下载-太平洋下载中心...

    DBConvert for MySQL & PostgreSQL是其它工具频道下深受用户喜爱的软件,太平洋下载中心提供DBConvert for MySQL & PostgreSQL官 ...

  10. 编译内核模块出现 include/linux/autoconf.h or include/config/auto.conf are missing.解决方法

    宿主机:Ubuntu14.04 64位 编译arm内核模块出现如下错误 lxiang@lxiang-Aspire-5750G:~/workplace/arm_device_driver/code_en ...

最新文章

  1. 《Cisco/H3C交换机配置与管理完全手册(第2版)》终稿封面和目录
  2. 2021春季学期-创新与实践-硬件平台硬件
  3. 报时功能_现在的智能机都没有内置整点自动报时吗?锤子坚果手机SOS有!
  4. linux用while循环输出1到10,Linux Shell系列教程之(十一)Shell while循环 | Linux大学...
  5. RNA-Seq分析软件HTSeq的安装
  6. Android 系统(179)--- .ko 加载失败
  7. Merry Christmas!看甜点海报如何庆祝圣诞
  8. 『转』图解硬件特性!
  9. TensorFlow tf.keras.callbacks.ModelCheckpoint
  10. 【xpath】多个xpath Element对象,提取结果是一样的
  11. SpringBoot中接口跨域问题
  12. 速达数据库服务器密码修改,速达,管家婆SQL Server帐套密码PJ方法 -电脑资料
  13. edge播放视频HTML5黑屏,edge不能播放网页视频怎么办-修复edge浏览器播放视频黑屏的方法 - 河东软件园...
  14. unity自动生成敌人_unity 2d AI 敌人 自动追踪(2)
  15. 5个步骤,打造你的业务中台
  16. win7任务计划提示”该任务映像已损坏或已篡改“
  17. NLP:自然语言处理技术近十年发展技术更迭的简介、案例之详细攻略(持续更新)daiding待更新
  18. 无损音频压缩——APE和FLAC比较
  19. 简单的android小程序计算机,Android实现简易计算器小程序
  20. CentOS中安装与配置Tomcat-7的方法

热门文章

  1. 遗传算法pid matlab程序解释,关于遗传算法的pid整定问题
  2. 按头安利 好看又实用的SolidEdge 3d模型素材看这里
  3. 寒冰老师 计算机 山西,计算机科学与技术口号, 计算机培训小组口号
  4. Windows系统主机加固
  5. 新版js进阶高频面试题
  6. MBE清新风格毕业答辩PPT模板
  7. 动环监控系统的主要功能,动环监控系统的监控对象有哪些
  8. 一些有关MATLAB使用的基础习题
  9. UnboundLocalError: local variable ‘count‘ referenced before assignment
  10. VUE中toast的使用与开发