postgresql Тайм-аут запуска pg_ctl - PullRequest
0 голосов
/ 14 февраля 2020

Моя система работает на CentOS 7.4, и мы использовали службу systemd для запуска сервера postgresql 9.2.21. postgresql запускается следующими командами:

ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA}
ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300 -l /tmp/log

pg_ctl возвращал время запуска периодически. Сбой при истечении времени ожидания операции запуска postgresql .service. ошибка. Выполнение systemctl status postgresql показало следующее:

â postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: failed (Result: timeout) since Thu 2020-02-13 15:57:02 PST; 52s ago
  Process: 1098 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 -l /tmp/log (code=killed, signal=TERM)
  Process: 1021 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)

Feb 13 23:52:02 server systemd[1]: Starting PostgreSQL database server...
Feb 13 23:52:03 server pg_ctl[1098]: pg_ctl: another server might be running; trying to start server anyway
Feb 13 15:57:02 server systemd[1]: postgresql.service start operation timed out. Terminating.
Feb 13 15:57:02 server systemd[1]: Failed to start PostgreSQL database server.
Feb 13 15:57:02 server systemd[1]: Unit postgresql.service entered failed state.
Feb 13 15:57:02 server systemd[1]: postgresql.service failed.

Выходные журналы pg_ctl:

2020-02-13 23:52:05 UTC LOG:  database system was interrupted; last known up at 2020-02-13 23:49:55 UTC
2020-02-13 23:52:21 UTC LOG:  database system was not properly shut down; automatic recovery in progress
2020-02-13 23:52:21 UTC LOG:  record with zero length at 0/1CEDFD8
2020-02-13 23:52:21 UTC LOG:  redo is not required
2020-02-13 23:52:21 UTC LOG:  database system is ready to accept connections
2020-02-13 23:52:21 UTC LOG:  autovacuum launcher started
2020-02-13 23:57:02 UTC LOG:  received smart shutdown request
2020-02-13 23:57:02 UTC LOG:  autovacuum launcher shutting down
2020-02-13 23:57:02 UTC LOG:  shutting down
2020-02-13 23:57:03 UTC LOG:  database system is shut down

Приведенный выше журнал показал, что база данных была запущена успешно, и я действительно мог sql к базе данных, пока база данных не была закрыта pg_ctl. Согласно man-странице pg_ctl, он будет неоднократно пытаться подключиться к серверу. Интересно, почему pg_ctl не может подключиться к серверу и выйти, но я могу сделать это вручную во время запуска.

Спасибо, Патрик

...