Postgresql 无法使新的postgres配置文件设置生效

Postgresql 无法使新的postgres配置文件设置生效,postgresql,wal,Postgresql,Wal,我的数据库中有一个较大的表,我正在向其中插入新记录。随着记录数量的增加,我开始出现问题,无法插入 我的postgresql日志文件建议我增加WAL大小: [700] LOG: checkpoints are occurring too frequently (6 seconds apart) [700] HINT: Consider increasing the configuration parameter "max_wal_size". 我使用=show config_file获得了配置文

我的数据库中有一个较大的表,我正在向其中插入新记录。随着记录数量的增加,我开始出现问题,无法插入

我的postgresql日志文件建议我增加WAL大小:

[700] LOG: checkpoints are occurring too frequently (6 seconds apart)
[700] HINT: Consider increasing the configuration parameter "max_wal_size".
我使用=show config_file获得了配置文件的路径;并对vim进行了一些修改:

max_wal_senders = 0
wal_level = minimal
max_wal_size = 4GB
当我检查文件时,我看到了我所做的更改。 然后我尝试重新加载并重新启动数据库: 我使用=show data\u directory获取数据目录

我尝试重新加载:

pg_ctl reload -D path
server signaled
我试着重新开始

pg_ctl restart -D path
waiting for server to shut down.... done
server stopped
waiting for server to start....
2020-01-17 13:08:19.063 EST [16913] LOG:  listening on IPv4 address 
2020-01-17 13:08:19.063 EST [16913] LOG:  listening on IPv6 address 
2020-01-17 13:08:19.079 EST [16913] LOG:  listening on Unix socket 
2020-01-17 13:08:19.117 EST [16914] LOG:  database system was shut down at 2020-01-17 13:08:18 EST
2020-01-17 13:08:19.126 EST [16913] LOG:  database system is ready to accept connections
 done
server started
但当我连接到数据库并检查设置时:

      name       | setting | unit |           category            |                               short_desc                                | extra_desc |  context   | vartype | source  | min_val |  max_val   |         enumvals          | boot_val | reset_val | sourcefile | sourceline | pending_restart
-----------------+---------+------+-------------------------------+-------------------------------------------------------------------------+------------+------------+---------+---------+---------+------------+---------------------------+----------+-----------+------------+------------+-----------------
 max_wal_senders | 10      |      | Replication / Sending Servers | Sets the maximum number of simultaneously running WAL sender processes. |            | postmaster | integer | default | 0       | 262143     |                           | 10       | 10        |            |            | f
 max_wal_size    | 1024    | MB   | Write-Ahead Log / Checkpoints | Sets the WAL size that triggers a checkpoint.                           |            | sighup     | integer | default | 2       | 2147483647 |                           | 1024     | 1024      |            |            | f
 wal_level       | replica |      | Write-Ahead Log / Settings    | Set the level of information written to the WAL.                        |            | postmaster | enum    | default |         |            | {minimal,replica,logical} | replica  | replica   |            |            | f
(3 rows)
我仍然看到旧的默认设置。
我错过了什么?如何使这些设置生效?

配置设置可以来自多个来源:

postgresql.conf 使用ALTER SYSTEM设置postgresql.auto.conf 服务器启动时的命令行参数 使用ALTER DATABASE或ALTER USER设置 此外,如果一个参数在配置文件中出现两次,则第二个条目获胜

要想知道你的设置是从哪里开始的,请运行

SELECT name, source, sourcefile, sourceline, pending_restart
FROM pg_settings
WHERE name IN ('wal_level', 'max_wal_size', 'max_wal_senders');
如果源是数据库或用户,则可以使用psql命令\drds了解详细信息

查询结果显示您的PostgreSQL已被修改或构建,因此这些值是默认值


您必须使用上述任何方法覆盖这些默认值。

配置设置可以来自多个来源:

postgresql.conf 使用ALTER SYSTEM设置postgresql.auto.conf 服务器启动时的命令行参数 使用ALTER DATABASE或ALTER USER设置 此外,如果一个参数在配置文件中出现两次,则第二个条目获胜

要想知道你的设置是从哪里开始的,请运行

SELECT name, source, sourcefile, sourceline, pending_restart
FROM pg_settings
WHERE name IN ('wal_level', 'max_wal_size', 'max_wal_senders');
如果源是数据库或用户,则可以使用psql命令\drds了解详细信息

查询结果显示您的PostgreSQL已被修改或构建,因此这些值是默认值


您必须使用上面显示的任何方法覆盖这些默认值。

您运行的是哪个版本?您可以共享pg_设置中的SELECT*?我想知道ALTER SYSTEM是否已经抓到您了…配置文件不一定位于数据目录中。显示什么配置文件;给你?@richyen我的版本是10.9 Ubuntu 10.9-0ubuntu0.18.04.1。我更新了帖子,从pg_设置中添加了SELECT*。@a_horse_,没有名称,显示配置文件;给我/etc/postgresql/10/main/postgresql.conf您运行的是什么版本?您可以共享pg_设置中的SELECT*?我想知道ALTER SYSTEM是否已经抓到您了…配置文件不一定位于数据目录中。显示什么配置文件;给你?@richyen我的版本是10.9 Ubuntu 10.9-0ubuntu0.18.04.1。我更新了帖子,从pg_设置中添加了SELECT*。@a_horse_,没有名称,显示配置文件;给我/etc/postgresql/10/main/postgresql.confhmm,所以我只看到所有源的默认值。请参阅更新后的帖子-现在包括g_设置中感兴趣的参数的所有列。我已经修改了答案。再次感谢您的回答。我想我会试试建议的方法。但我仍然很难理解一件事:不是SHOW config_文件;在这种情况下给我默认的配置文件?为什么我不应该期望更改此文件中的参数也会更改默认设置?嗯,所以我只看到所有源的默认设置。请参阅更新后的帖子-现在包括g_设置中感兴趣的参数的所有列。我已经修改了答案。再次感谢您的回答。我想我会试试建议的方法。但我仍然很难理解一件事:不是SHOW config_文件;在这种情况下给我默认的配置文件?为什么我不希望更改此文件中的参数也会更改默认设置?