postgresql 启动报错

FATAL:  could not create shared memory segment: Invalid argument
DETAIL:  Failed system call was shmget(key=5710001, size=278724608, 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 reque
st size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently 278724608 bytes), reduce PostgreSQL's shared_buffers parameter (cu
rrently 32768) and/or its max_connections parameter (currently 103).
        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 reco
nfiguring SHMMIN is called for.
        The PostgreSQL documentation contains more information about shared memory configuration.

解决办法:
1 我们可以修改shmmax内核参数,使SGA存在于一个共享内存段中。

  通过修改/proc/sys/kernel/shmmax参数可以达到此目的。

[root@xxxxx]# echo 1073741824 > /proc/sys/kernel/shmmax

[root@xxxxx]# more /proc/sys/kernel/shmmax

1073741824这里设为1G。

  对于shmmax文件的修改,系统重新启动后会复位。可以通过修改/etc/sysctl.conf使更改永久化。

  在该文件内添加以下一行    kernel.shmmax = 1073741824 这个更改在系统重新启动后生效.

2 修改postgresql.conf 里面 共享内存参数

猜你喜欢

转载自jashuang.iteye.com/blog/1669090