加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql更改配置生效问题

发布时间:2020-12-13 15:53:22 所属栏目:百科 来源:网络整理
导读:补充:如何确定psql配置文件的路径 ①切换至psql用户,此处为thunisoft。 ??? ②确定路径方法很多,此处介绍常用的几种。 1ps –ef? |grep base 输出结果中 –D后几位数据目录。 ? ? ????? 2切换中thunisoft用户后默认在thunisoft的家目录/home/thunisoft下

补充:如何确定psql配置文件的路径

①切换至psql用户,此处为thunisoft。

??? ②确定路径方法很多,此处介绍常用的几种。

<1>ps –ef? |grep base 输出结果中 –D后几位数据目录。

?

?

????? <2>切换中thunisoft用户后默认在thunisoft的家目录/home/thunisoft下。使用公司提供的安装包,自动安装psql时会在家目录下自动生成启动或停止脚本。

?

??? 使用命令 more startup.sh或stop.sh。就可看到如下内容。其中-D指明了数据目录。

?

??? <3>第三种一步到位的方法:直接使用工具连接数据库执行。可以看到sourcefile对应了两个不同的配置文件。分别是postgresql.conf和postgresql.auto.conf,后者优先级更高。在更改配置前需要在数据库总先确认其对应的配置文件是哪一个。例如我们自动安装的abase会有postgresql.auto.conf,而max_connections就在此配置。

?

一:如何使修改的配置项生效?

1、在查看postgresql.conf配置文件可以看到,port配置后有# (change requires restart),代表使用重载配置并不能使配置生效,需要重启数据库。

?

那么是否所有的配置都需要重启才生效?该如何确定何种操作才能使配置生效?

?

2、配置如何生效在pg_settings中可以查找,context共有七个不同字段分别如下。

?

context

操作

backend??

?可以在postgresql.conf中对这些设置进行更改,而无需重新启动服务器。 但新的配置值只会出现在这之后的连接中,在已有的连接中,这些值不会改变。??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

user?

该类参数表示,普通用户可以通过set命令来更改参数的配置值。??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

internal?

该类参数是内部参数,也就是说,不可以进行修改,除非重新initdb。??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

postmaster?

该类参数更改配置项后,需要重启PostgreSQL实例才能生效。????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

superuser?

该类参数可以由超级用户来改变,改变时,只会影响到自身的session,不会影响到其他的用户。?????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

sighup?

在postgresql.conf配置文件中更改这种类型的参数无须重启实例,只需要向postmaster进程发送一 个SIGHUP信号,让其重新读取配置文件即可。postmaster进程收到信号后,也会向其他子进程发送SIGHUP信号, 让新的参数值在其他子进程中也生效。该类参数区别于backend类参数。?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

superuser-backend

?该类参数可以由超级用户来改变,可以在postgresql.conf中对这些设置进行更改,而无需 重新启动服务器。但新的配置值只会出现在这之后的连接中,在已有的连接中,这些值不会改变。????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?

?

?

?

补充:

1、sighup即不重启服务器直接重载配置即可,重载配置的方法如下

①执行命令:pg_ctl reload [-D DATADIRT]

②在数据库中使用sql:select pg_reload_conf();

2、postmaster。需要重启数据库。

例如修改max_connections(最大连接数)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读