我正在尝试在本地计算机上启动PostgreSQL server。
但我收到一条错误消息,上面说:
致命:无法创建共享内存段:参数无效
详细信息:失败的系统调用是shmget(键=5432001,大小=978124803600)。
提示:此错误通常意味着PostgreSQL对共享内存段的请求超过了内核的SHMMAX参数。您可以减小请求大小,或者使用更大的SHMMAX重新配置内核。要减小请求大小(当前为9781248字节),请减小PostgreSQL的shared_buffers参数(当前为1024)和/或其max_connections参数(当前为13)。
如果请求大小已经很小,则可能小于内核的SHMMIN参数,在这种情况下,需要提高请求大小或重新配置SHMMIN。
PostgreSQL文档包含有关共享内存配置的更多信息。
我搜索并查看了文档,但我尝试设置kern.sysv.shmmax和kern.sysv.shmall的所有方法都有效。
雪豹的正确设置是什么?我用macports安装了postgres
您必须将内核的最大共享内存余量增加到高于Postgres试图分配的值。(您还可以减少postgresql.conf中的共享缓冲区或最大连接设置,以使Postgres请求更少的内存,但对于大多数用例,默认值已经相当小了。)
要一次性执行此操作,直到下次重新启动:
sudo sysctl-w kern.sysv.shmmax=12582912
sudo sysctl-w kern.sysv.shmall=12582912
根据您的Postgres设置更改确切的数字;它必须大于Postgres在日志文件中所要求的大小。完成这两项之后,你应该能够开始博士后学习
要使更改在重新启动期间保持不变,请编辑/etc/sysctl.conf并在那里设置相同的值