在/var/lib/postgresql/data中找到的postgresql.conf文件都是这样注解的(我检查过了):
/var/lib/postgresql/data
postgresql.conf
但当我尝试使用以下命令进行配置时:SELECT current_setting('autovacuum')
SELECT current_setting('autovacuum')
为什么会这样?我可以编辑这个文件吗?或者TimescaleDB插件上有另一个文件?
cwtwac6a1#
这是常规行为,因为每个配置都有默认值。要覆盖某些特定行为,您需要挂载配置文件。如果只是测试配置,可以通过bash加入容器:
docker exec -it your-timescale-container bash
然后,您可以重新启动服务:
service postgresql restart
如果要从计算机同步配置,请使用以下方法:要在使用TimescaleDB-HA Docker映像时设置PostgreSQL配置,可以执行以下步骤:在主机上创建一个新目录来存储PostgreSQL配置文件。例如,您可以在主目录中创建一个名为pg_conf的目录:
mkdir ~/pg_conf
将postgresql.conf文件复制到pg_conf目录。启动timescaledb-ha容器并将pg_conf目录装载到该容器。可以使用-v选项将该目录装载为卷。例如:
-v
docker run --name my-timescaledb-ha -v ~/pg_conf:/etc/postgresql/postgresql.conf.d -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword timescale/timescaledb-ha
此命令将启动一个名为my-timescaledb-ha的新TimescaleDB-HA容器,并将主机上的pg_conf目录挂载到容器内的/etc/postgresql/postgresql.conf.d目录。现在你的PostgreSQL配置应该应用到容器中了。你可以通过检查容器中的postgresql.conf文件来确认这一点:
docker exec -it my-timescaledb-ha cat /etc/postgresql/postgresql.conf.d/postgresql.conf
此命令将显示容器内postgresql.conf文件的内容。就是这样!现在您可以根据需要启动和停止容器,并且您的PostgreSQL配置将在容器重新启动后保持不变。
1条答案
按热度按时间cwtwac6a1#
这是常规行为,因为每个配置都有默认值。要覆盖某些特定行为,您需要挂载配置文件。
如果只是测试配置,可以通过bash加入容器:
然后,您可以重新启动服务:
如果要从计算机同步配置,请使用以下方法:
要在使用TimescaleDB-HA Docker映像时设置PostgreSQL配置,可以执行以下步骤:
在主机上创建一个新目录来存储PostgreSQL配置文件。例如,您可以在主目录中创建一个名为pg_conf的目录:
将postgresql.conf文件复制到pg_conf目录。
启动timescaledb-ha容器并将pg_conf目录装载到该容器。可以使用
-v
选项将该目录装载为卷。例如:此命令将启动一个名为my-timescaledb-ha的新TimescaleDB-HA容器,并将主机上的pg_conf目录挂载到容器内的/etc/postgresql/postgresql.conf.d目录。
现在你的PostgreSQL配置应该应用到容器中了。你可以通过检查容器中的postgresql.conf文件来确认这一点:
此命令将显示容器内postgresql.conf文件的内容。
就是这样!现在您可以根据需要启动和停止容器,并且您的PostgreSQL配置将在容器重新启动后保持不变。