PostgreSQL 9.2 служба постоянно отказывает - PullRequest
0 голосов
/ 15 января 2020

У меня есть минимальная виртуальная машина CentOS 7 с PG SQL для проведения некоторого тестирования, но каким-то образом через некоторое время служба PG SQL, похоже, перестала работать или повреждена, и я не могу ее перезапустить. Я в основном работаю над реализацией восстановления на определенный момент времени с использованием файлов WAL, с которыми у меня все получилось. Мне приходилось перестраивать установку и базу данных более трех раз, что, кажется, всегда происходит после Мне удалось заставить архивирование WAL снова работать над новой сборкой. Я не делаю безумных изменений в файлах postgresql.conf или pg_hba.conf, и базы данных тоже не такие большие (менее 2 ГБ данных в 40 таблицах), поэтому я не могу представить, как я продолжаю портить каталог данных или сервис. Я хотел бы некоторые идеи о том, как устранить или устранить эту ошибку. Вот вывод, когда я запускаю systemctl status postgresql-9.2:

Job for postgresql-9.2.service failed because the control process exited with error code. See "systemctl status postgresql-9.2.service" and "journalctl -xe" for details.
[root@localhost bin]# systemctl status postgresql-9.2
● postgresql-9.2.service - PostgreSQL 9.2 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-9.2.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2020-01-15 13:09:35 EST; 3min 34s ago
  Process: 14407 ExecStart=/usr/pgsql-9.2/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 (code=exited, status=1/FAILURE)
  Process: 14578 ExecStartPre=/usr/pgsql-9.2/bin/postgresql92-check-db-dir ${PGDATA} (code=exited, status=1/FAILURE)
 Main PID: 10787 (code=exited, status=0/SUCCESS)

Jan 15 13:09:35 localhost.localdomain systemd[1]: Starting PostgreSQL 9.2 database s....
Jan 15 13:09:35 localhost.localdomain systemd[1]: postgresql-9.2.service: control pr...1
Jan 15 13:09:35 localhost.localdomain systemd[1]: Failed to start PostgreSQL 9.2 dat....
Jan 15 13:09:35 localhost.localdomain systemd[1]: Unit postgresql-9.2.service entere....
Jan 15 13:09:35 localhost.localdomain systemd[1]: postgresql-9.2.service failed.

Вот что показывает команда journalctl -xe:

-- Unit postgresql-9.2.service has begun starting up.
Jan 15 13:09:35 localhost.localdomain postgresql92-check-db-dir[14578]: "/var/lib/pgsql/9.2/data/" is missing or empty.
Jan 15 13:09:35 localhost.localdomain postgresql92-check-db-dir[14578]: Use "/usr/pgsql-9.2/bin/postgresql92-setup initdb" to initialize the database cluster.
Jan 15 13:09:35 localhost.localdomain postgresql92-check-db-dir[14578]: See /usr/share/doc/postgresql92-9.2.24/README.rpm-dist for more information.
Jan 15 13:09:35 localhost.localdomain polkitd[715]: Unregistered Authentication Agent for unix-process:14572:4358382 (system bus name :1.215, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
Jan 15 13:09:35 localhost.localdomain systemd[1]: postgresql-9.2.service: control process exited, code=exited status=1
Jan 15 13:09:35 localhost.localdomain systemd[1]: Failed to start PostgreSQL 9.2 database server.
-- Subject: Unit postgresql-9.2.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit postgresql-9.2.service has failed.
--
-- The result is failed.
Jan 15 13:09:35 localhost.localdomain systemd[1]: Unit postgresql-9.2.service entered failed state.
Jan 15 13:09:35 localhost.localdomain systemd[1]: postgresql-9.2.service failed.
Jan 15 13:16:01 localhost.localdomain anacron[14339]: Job `cron.daily' started
Jan 15 13:16:01 localhost.localdomain run-parts(/etc/cron.daily)[14590]: starting logrotate
Jan 15 13:16:01 localhost.localdomain run-parts(/etc/cron.daily)[14595]: finished logrotate
Jan 15 13:16:01 localhost.localdomain run-parts(/etc/cron.daily)[14597]: starting man-db.cron
Jan 15 13:16:04 localhost.localdomain run-parts(/etc/cron.daily)[17612]: finished man-db.cron
Jan 15 13:16:04 localhost.localdomain anacron[14339]: Job `cron.daily' terminated
Jan 15 13:16:04 localhost.localdomain anacron[14339]: Normal exit (1 job run)

Я не могу найти никаких журналов, указывающих c для PG SQL (в /var/log/ ничего не относится к PG SQL, в каталоге данных тоже ничего), поэтому поиск и устранение неисправностей становится довольно трудным делом. Спасибо за вашу помощь!

1 Ответ

1 голос
/ 15 января 2020

Советы по устранению неполадок:

  • Найдите журнал PostgreSQL (возможно, где-то под /var/lib/pgsql/9.2/data) и прочитайте его.

  • Попробуйте начните PostgreSQL вручную как пользователь postgres с

    postgres -D /path/to/the/data/directory
    

    и посмотрите, что вы получите.

  • Используйте PostgreSQL версию, отличную от древней 9.2 .

...