gpt4 book ai didi

postgresql - 在 MAC OS X 10.6 上为 PostgreSQL 设置 SHMMAX 等值

转载 作者:行者123 更新时间:2023-11-29 11:08:29 26 4
gpt4 key购买 nike

我正在尝试在我的本地机器上启动我的 PostgreSQL 服务器。但是我收到一条错误消息:

FATAL:  could not create shared memory segment: Invalid argument
DETAIL: Failed system call was shmget(key=5432001, size=9781248, 03600).
HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 9781248 bytes), reduce PostgreSQL's shared_buffers parameter (currently 1024) and/or its max_connections parameter (currently 13).
If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
The PostgreSQL documentation contains more information about shared memory configuration.

我搜索并查看了文档,但我尝试设置 kern.sysv.shmmax 和 kern.sysv.shmall 的所有操作都有效。Snow Leopard 上的正确设置是什么?我用 macports 安装了 postgres。

最佳答案

您必须将内核的最大共享内存允许量增加到高于 Postgres 试图分配的值。 (您还可以减少 postgresql.conf 中的共享缓冲区或最大连接数设置,以使 Postgres 请求更少的内存,但对于大多数用例而言,默认值已经相当小了。)

一次性执行此操作,持续到下一次重启:

sudo sysctl -w kern.sysv.shmmax=12582912
sudo sysctl -w kern.sysv.shmall=12582912

根据您的 Postgres 设置更改确切的数字;它必须大于 Postgres 在日志文件中要求的任何内容。完成这两项操作后,您应该能够启动 Postgres。

要使更改在重新启动后持续存在,请编辑/etc/sysctl.conf 并在其中设置相同的值。

关于postgresql - 在 MAC OS X 10.6 上为 PostgreSQL 设置 SHMMAX 等值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2017004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com