Служба postgresql не работает на RHEL 7

У нас есть приложение, работающее на RHEL6/32 бит и RHEL6/64 бит. Это приложение использует postgresql 8.4 с самого начала. Теперь мы хотим обеспечить поддержку этого приложения на RHEL7/64 бит. RHEL7 поставляется с postgresql 9.2 по умолчанию в своем списке yum, и он устанавливается, и связанные с ним службы также работают правильно. Но после установки postgresql 8.4 на RHEL7 кажется, что службы никогда не работают. Пожалуйста, найдите ниже журналы:

[root@linpubn218 postgres]# service postgresql status
postgresql.service - SYSV: PostgreSQL database server.
   Loaded: loaded (/etc/rc.d/init.d/postgresql)
      Active: failed (Result: resources) since Mon 2016-07-25 12:40:28 IST; 2h 0min ago
           Docs: man:systemd-sysv-generator(8)

Jul 25 12:40:26 linpubn218.gl.avaya.com systemd[1]: Starting SYSV: PostgreSQL database server....
Jul 25 12:40:28 linpubn218.gl.avaya.com postgresql[26957]: Starting postgresql service: [  OK  ]
Jul 25 12:40:28 linpubn218.gl.avaya.com systemd[1]: PID file /var/run/postmaster-8.4.pid not readable (yet?) after start.
Jul 25 12:40:28 linpubn218.gl.avaya.com systemd[1]: Failed to start SYSV: PostgreSQL database server..
Jul 25 12:40:28 linpubn218.gl.avaya.com systemd[1]: Unit postgresql.service entered failed state.
Jul 25 12:40:28 linpubn218.gl.avaya.com systemd[1]: postgresql.service failed.
Jul 25 14:33:45 linpubn218.gl.avaya.com systemd[1]: Unit postgresql.service cannot be reloaded because it is inactive.
Jul 25 14:33:45 linpubn218.gl.avaya.com systemd[1]: Unit postgresql.service cannot be reloaded because it is inactive.

После просмотра логов в журналеctl -xe

[root@linpubn218 postgres]# journalctl -xe
Jul 25 14:39:21 linpubn218.gl.avaya.com yum[29260]: Installed: postgresql84-libs-8.4.17-1PGDG.rhel6.x86_64
Jul 25 14:39:45 linpubn218.gl.avaya.com yum[29275]: Installed: postgresql84-8.4.17-1PGDG.rhel6.x86_64
Jul 25 14:40:01 linpubn218.gl.avaya.com useradd[29316]: failed adding user 'postgres', exit code: 9
Jul 25 14:40:02 linpubn218.gl.avaya.com CROND[29320]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 25 14:40:02 linpubn218.gl.avaya.com systemd[1]: Reloading.
Jul 25 14:40:03 linpubn218.gl.avaya.com systemd[1]: Configuration file /usr/lib/systemd/system/auditd.service is marked world-inaccessible. This has no effect as config
Jul 25 14:40:03 linpubn218.gl.avaya.com yum[29309]: Installed: postgresql84-server-8.4.17-1PGDG.rhel6.x86_64
Jul 25 14:42:05 linpubn218.gl.avaya.com polkitd[819]: Registered Authentication Agent for unix-process:29459:43987285 (system bus name :1.292 [/usr/bin/pkttyagent --not
Jul 25 14:42:05 linpubn218.gl.avaya.com systemd[1]: Starting SYSV: PostgreSQL database server....
Jul 25 14:42:06 linpubn218.gl.avaya.com runuser[29473]: pam_unix(runuser-l:session): session closed for user postgres
Jul 25 14:42:08 linpubn218.gl.avaya.com postgresql[29464]: Starting postgresql service: [  OK  ]
Jul 25 14:42:08 linpubn218.gl.avaya.com systemd[1]: PID file /var/run/postmaster-8.4.pid not readable (yet?) after start.
Jul 25 14:42:08 linpubn218.gl.avaya.com systemd[1]: Failed to start SYSV: PostgreSQL database server..

Можно ли установить postgresql 8.4 на RHEL7, основанную на systemd? Если да, то что мне делать, чтобы убрать вышеуказанную ошибку?


person Vaibhav Sawalkar    schedule 25.07.2016    source источник
comment
На всякий случай, вы используете v8.4 в другом порту, чем v9.2?   -  person Francisco Puga    schedule 25.07.2016
comment
Я удалил все экземпляры postgresql из моей новой системы с RHEL7. После этого я попытался заново установить postgresql 8.4, который использует порт по умолчанию 5432.   -  person Vaibhav Sawalkar    schedule 25.07.2016


Ответы (2)


Я заметил, что в /etc/init.d/postgresql-8.4 есть объявленная переменная:

pidfile="/var/run/postmaster-${PGMAJORVERSION}.${PGPORT}.pid"

Но в systemctl, PIDfile не то же самое:

# systemctl show postgresql-8.4.service -p PIDFile PIDFile=/var/run/postmaster-8.4.pid

Итак, чтобы исправить проблему, отредактируйте /etc/init.d/postgresql-8.4 и замените

pidfile="/var/run/postmaster-${PGMAJORVERSION}.${PGPORT}.pid"

с

pidfile="/var/run/postmaster-${PGMAJORVERSION}.pid"

затем перезагрузите systemctl:

# systemctl daemon-reload
#/etc/init.d/postgresql-8.4 start
Starting postgresql-8.4 (via systemctl):                   [  OK  ]
person Sasha Golikov    schedule 02.11.2016

Обычно разрешения вызывают этот тип ошибки

su - postgres

После этого:

chmod 700 -R <data_directory>

И вы также должны проверить SELinux.

person Community    schedule 25.07.2016
comment
Я проверил разрешения (700) и статус SELinux (отключено). Тем не менее, это не работает для меня. Я не понял, на какой ресурс указывает эта строка: Ошибка задания для postgresql-8.4.service из-за превышения настроенного лимита ресурсов. И другие журналы говорят, что файл PID /var/run/postmaster-8.4.pid не читается (пока?) после запуска. Я не вижу ни одного файла var/run/postmaster-8.4.pid. Хотя два других файла с именами postmaster-8.4.5432.pid и postmaster.7654.pid присутствуют. Можно ли действительно установить postgresql 8.4 на RHEL7? - person Vaibhav Sawalkar; 26.07.2016
comment
вы пробовали yum install libstdc++.i686 я готов некоторые люди решили свою проблему с этой библиотекой - person ; 26.07.2016
comment
libstdc++.x86_64 уже установлен. Я обновил этот пакет, но не повезло. Та же проблема. - person Vaibhav Sawalkar; 26.07.2016