Postgresql

CentOS 6.5 上的 PostgreSQL 9.1 - recovery.conf 導致程序退出並出現錯誤程式碼

  • April 2, 2014

我確實在 Ubuntu 12.04 LTS 上設置了流複製,並在發生故障時對 WAL 文件進行了同步。現在我試圖在 CentOS 6.5 上做同樣的事情。

為此,我從 postgresql.org 添加了官方 RPM,並使用 yum 安裝了 postgresql 9.1。

一切都很好,直到我應該創建recovery.conf文件的步驟。

recovery.conf只需在目錄中創建一個空文件就足夠了,$PDATA這樣 PostgreSQL 就不會啟動:

DEBUG:      PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
DEBUG:      MAIL=/var/spool/mail/root
DEBUG:      LC_IDENTIFICATION=pl_PL.UTF-8
DEBUG:      PWD=/var/lib/pgsql
DEBUG:      LANG=en_US.UTF-8
DEBUG:      LC_MEASUREMENT=pl_PL.UTF-8
DEBUG:      SELINUX_LEVEL_REQUESTED=
DEBUG:      HISTCONTROL=ignoredups
DEBUG:      HOME=/var/lib/pgsql
DEBUG:      SHLVL=2
DEBUG:      LOGNAME=postgres
DEBUG:      SSH_CONNECTION=10.255.0.142 41803 10.255.0.186 22
DEBUG:      LESSOPEN=|/usr/bin/lesspipe.sh %s
DEBUG:      LC_TIME=C
DEBUG:      G_BROKEN_FILENAMES=1
DEBUG:      LC_NAME=pl_PL.UTF-8
DEBUG:      _=/usr/pgsql-9.1/bin/postgres
DEBUG:      PGLOCALEDIR=/usr/pgsql-9.1/share/locale
DEBUG:      PGSYSCONFDIR=/etc/sysconfig/pgsql
DEBUG:      LC_COLLATE=en_US.UTF-8
DEBUG:      LC_CTYPE=en_US.UTF-8
DEBUG:      LC_MESSAGES=pl_PL.UTF-8
DEBUG:  -----------------------------------------
DEBUG:  invoking IpcMemoryCreate(size=39288832)
DEBUG:  usuwanie pliku "pg_notify/0000" # removing file
DEBUG:  max_safe_fds = 984, usable_fds = 1000, already_open = 6
DEBUG:  zatrzymanie rejestratora # means stop registry/registrator
DEBUG:  shmem_exit(0): 0 callbacks to make
DEBUG:  proc_exit(0): 0 callbacks to make
DEBUG:  exit(0)
DEBUG:  shmem_exit(-1): 0 callbacks to make
DEBUG:  proc_exit(-1): 0 callbacks to make

執行 gdb 時相同:

DEBUG:  shmem_exit(0): 0 callbacks to make
DEBUG:  proc_exit(0): 0 callbacks to make
DEBUG:  exit(0)
DEBUG:  shmem_exit(-1): 0 callbacks to make
DEBUG:  proc_exit(-1): 0 callbacks to make

Program exited with code 01.
(gdb) bt
No stack.

-d 5LC=C(太長,無法放入文章) http://pastebin.com/Z7t1CEwg

如果沒有該 recovery.conf 文件,PostgreSQL 將正常執行。

有沒有人遇到過這樣的問題?

這個問題在 CentOS x64 上不會發生。這只是暫時的解決方法,但我接受它沒有更好的答案。

引用自:https://serverfault.com/questions/583133