MacにPostgreSQL8.4を入れたときの手順です。 PostgreSQLのインストール自体は homebrew を使うと簡単にインストールできます。
brew install postgresql8
shared_bufferなどを256MBなどに変更して起動すると
mkdir /usr/local/var/postgres initdb /usr/local/var/postgres vim /usr/local/var/postgres/postgresql.conf 設定変更
FATAL: could not create shared memory segment: Cannot allocate memory DETAIL: Failed system call was shmget(key=5432001, size=567640064, 03600). HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space. To reduce the request size (currently 567640064 bytes), reduce PostgreSQL's shared_buffers parameter (currently 65536) and/or its max_connections parameter (currently 23). The PostgreSQL documentation contains more information about shared memory configuration.
といったエラーが発生します。
postgresqlは共有メモリを使用しているのですが、Macの場合これがデフォルトで4MBしかありません。 そのためPostgresqlで設定を変えるとこけます。
Macの共有メモリ周りを変更します。 4MB → 512MBにします。
sudo vim /etc/sysctl.conf --- kern.sysv.shmmax=536870912 kern.sysv.shmmin=1 kern.sysv.shmmni=4096 kern.sysv.shmseg=1024 kern.sysv.shmall=131072 --- reboot
カーネルのパラメータなのでOSの再起動が必要です。
変更されているか確認します。
sysctl kern.sysv.shmmax
これでshared_bufferの値を変更しても起動するようになりますが、 ギリギリの設定、shared_buffer = 512MB にすると起動しません。 ある程度余裕が必要のようです。