在pg_auto_failover高可用架构中,由于采用pg_auto_failover的服务启动Postgresql,用pg_autoctl初始化Postgresql实例之后,也会创建一个配置文件postgresql-auto-failover.conf,如下。
那么,目前受pg_auto_failover托管的Postgresql实例一共有三个配置文件,如下:
postgresql.conf
postgresql.auto.conf
postgresql-auto-failover.conf
对于postgresql.conf和postgresql.auto.conf,可以很清楚地知道postgresql.auto.conf的优先级高于postgresql.conf,也就是说postgresql.auto.conf的配置会覆盖postgresql.conf中的配置(如果有相同的配置项的情况下)- root@ubuntu12:/usr/local# psql -h localhost -p 9300 postgres postgresPassword for user postgres:psql (16.4)SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)Type "help" for help.postgres=#postgres=# select distinct sourcefile from pg_settings; sourcefile-------------------------------------------------------------- /usr/local/pgsql16/pg9300/data/postgresql.auto.conf /usr/local/pgsql16/pg9300/data/postgresql.conf /usr/local/pgsql16/pg9300/data/postgresql-auto-failover.conf(4 rows)postgres=#
复制代码
但是目前又多了一个postgresql-auto-failover.conf,这个配置文件的实例如下,以笔者的测试环境为例,这也是一个标准的Postgresql配置文件,那么这个postgresql-auto-failover.conf配置文件与Postgresql实力自身的两个配置文件,优先级是怎么样的?
以shared_buffers为例,验证case如下
1,直接修改postgresql.conf中的shared_buffers配置项然后重启pgautofailover实例,修改生效
2,通过sql语句ALTER SYSTEM SET shared_buffers = '512MB';重启pgautofailover实例,修改生效,改配置会自动修改postgresql.auto.conf配置文件
以上两个修改,在物理文件层面分别修改了postgresql.conf和postgresql.auto.conf,但是重启后,并没有自动修改postgresql-auto-failover.conf,说明postgresql-auto-failover.conf的优先级低于postgresql.conf。
而postgresql.conf优先级又低于postgresql.auto.conf,所以这三个配置文件的优先级顺序就很清楚了
postgresql.auto.conf最高;postgresql.conf次之;postgresql-auto-failover.conf最低。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |