postgresql-12.service不';重新启动后,在CentOS 8上无法启动

postgresql-12.service不';重新启动后,在CentOS 8上无法启动,postgresql,centos,centos8,postgresql-12,Postgresql,Centos,Centos8,Postgresql 12,我有一个PostgreSQL 12数据库运行在CentOS 8上,直到今天一切都很好 重新启动数据库服务器后,我的postgresql-12.service不再启动,我尝试了systemctl,比如systemctl start postgresql-12.service,我得到了以下结果: [postgres@perseus ~]$ sudo systemctl start postgresql-12.service [sudo] password for postgres: Job for

我有一个PostgreSQL 12数据库运行在CentOS 8上,直到今天一切都很好

重新启动数据库服务器后,我的postgresql-12.service不再启动,我尝试了systemctl,比如
systemctl start postgresql-12.service
,我得到了以下结果:

[postgres@perseus ~]$ sudo systemctl start postgresql-12.service
[sudo] password for postgres:
Job for postgresql-12.service failed because the control process exited with error code.
See "systemctl status postgresql-12.service" and "journalctl -xe" for details.
[postgres@perseus ~]$ sudo systemctl status postgresql-12.service
● postgresql-12.service - PostgreSQL 12 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2020-08-11 08:57:51 -03; 11s ago
     Docs: https://www.postgresql.org/docs/12/static/
  Process: 2822 ExecStart=/usr/pgsql-12/bin/postmaster -D ${PGDATA} (code=exited, status=1/FAILURE)
  Process: 2816 ExecStartPre=/usr/pgsql-12/bin/postgresql-12-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 2822 (code=exited, status=1/FAILURE)

Aug 11 08:57:49 perseus postmaster[2822]: 2020-08-11 08:57:49.040 -03 [2822] LOG:  listening on IPv4 address "0.0.0.0", port 5432
Aug 11 08:57:49 perseus postmaster[2822]: 2020-08-11 08:57:49.040 -03 [2822] LOG:  listening on IPv6 address "::", port 5432
Aug 11 08:57:49 perseus postmaster[2822]: 2020-08-11 08:57:49.041 -03 [2822] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Aug 11 08:57:49 perseus postmaster[2822]: 2020-08-11 08:57:49.042 -03 [2822] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
Aug 11 08:57:49 perseus postmaster[2822]: 2020-08-11 08:57:49.068 -03 [2822] LOG:  redirecting log output to logging collector process
Aug 11 08:57:49 perseus postmaster[2822]: 2020-08-11 08:57:49.068 -03 [2822] HINT:  Future log output will appear in directory "log".
Aug 11 08:57:51 perseus systemd[1]: postgresql-12.service: Main process exited, code=exited, status=1/FAILURE
Aug 11 08:57:51 perseus systemd[1]: postgresql-12.service: Killing process 2824 (postmaster) with signal SIGKILL.
Aug 11 08:57:51 perseus systemd[1]: postgresql-12.service: Failed with result 'exit-code'.
Aug 11 08:57:51 perseus systemd[1]: Failed to start PostgreSQL 12 database server.
然后,通过谷歌搜索这个错误,我尝试了一些解决方法,比如使用
pg_ctl
initdb
comands,但也失败了,比如:

[postgres@perseus ~]$ /usr/pgsql-12/bin/pg_ctl start -D /var/lib/pgsql/12/data
waiting for server to start....2020-08-11 09:04:44.197 -03 [2897] LOG:  starting PostgreSQL 12.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 64-bit
2020-08-11 09:04:44.197 -03 [2897] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2020-08-11 09:04:44.197 -03 [2897] LOG:  listening on IPv6 address "::", port 5432
2020-08-11 09:04:44.197 -03 [2897] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2020-08-11 09:04:44.198 -03 [2897] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2020-08-11 09:04:44.222 -03 [2897] LOG:  redirecting log output to logging collector process
2020-08-11 09:04:44.222 -03 [2897] HINT:  Future log output will appear in directory "log".
.. stopped waiting
pg_ctl: could not start server
Examine the log output.

[postgres@perseus ~]$ /usr/pgsql-12/bin/initdb -D '/var/lib/pgsql/12/data'
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

initdb: error: directory "/var/lib/pgsql/12/data" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/var/lib/pgsql/12/data" or run initdb
with an argument other than "/var/lib/pgsql/12/data".
journalctl-xe
结果:

    [postgres@perseus ~]$ sudo systemctl start postgresql-12.service
[sudo] password for postgres:
Job for postgresql-12.service failed because the control process exited with error code.
See "systemctl status postgresql-12.service" and "journalctl -xe" for details.
[postgres@perseus ~]$ sudo journalctl -xe
Aug 11 11:16:49 perseus sudo[3022]: pam_systemd(sudo:session): Cannot create session: Already running in a session or user slice
Aug 11 11:16:49 perseus sudo[3022]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Aug 11 11:16:49 perseus sudo[3022]: pam_unix(sudo:session): session closed for user root
Aug 11 11:20:01 perseus systemd[1]: Starting system activity accounting tool...
-- Subject: Unit sysstat-collect.service has begun start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit sysstat-collect.service has begun starting up.
Aug 11 11:20:01 perseus systemd[1]: Started system activity accounting tool.
-- Subject: Unit sysstat-collect.service has finished start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit sysstat-collect.service has finished starting up.
--
-- The start-up result is RESULT.
Aug 11 11:26:10 perseus sudo[3095]: postgres : TTY=pts/0 ; PWD=/var/lib/pgsql ; USER=root ; COMMAND=/bin/journalctl -xe
Aug 11 11:26:10 perseus sudo[3095]: pam_systemd(sudo:session): Cannot create session: Already running in a session or user slice
Aug 11 11:26:10 perseus sudo[3095]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Aug 11 11:26:49 perseus sudo[3095]: pam_unix(sudo:session): session closed for user root
Aug 11 11:26:52 perseus sudo[3107]: postgres : TTY=pts/0 ; PWD=/var/lib/pgsql ; USER=root ; COMMAND=/bin/journalctl -xe
Aug 11 11:26:52 perseus sudo[3107]: pam_systemd(sudo:session): Cannot create session: Already running in a session or user slice
Aug 11 11:26:52 perseus sudo[3107]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Aug 11 11:27:48 perseus sudo[3107]: pam_unix(sudo:session): session closed for user root
Aug 11 11:30:01 perseus systemd[1]: Starting system activity accounting tool...
-- Subject: Unit sysstat-collect.service has begun start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit sysstat-collect.service has begun starting up.
Aug 11 11:30:01 perseus systemd[1]: Started system activity accounting tool.
-- Subject: Unit sysstat-collect.service has finished start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit sysstat-collect.service has finished starting up.
--
-- The start-up result is RESULT.
Aug 11 11:34:13 perseus sudo[3167]: postgres : TTY=pts/0 ; PWD=/var/lib/pgsql ; USER=root ; COMMAND=/bin/systemctl start postgresql-12.service
Aug 11 11:34:13 perseus sudo[3167]: pam_systemd(sudo:session): Cannot create session: Already running in a session or user slice
Aug 11 11:34:13 perseus sudo[3167]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Aug 11 11:34:13 perseus systemd[1]: Starting PostgreSQL 12 database server...
-- Subject: Unit postgresql-12.service has begun start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit postgresql-12.service has begun starting up.
Aug 11 11:34:13 perseus postmaster[3176]: 2020-08-11 11:34:13.373 -03 [3176] LOG:  starting PostgreSQL 12.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 64-bit
Aug 11 11:34:13 perseus postmaster[3176]: 2020-08-11 11:34:13.373 -03 [3176] LOG:  listening on IPv4 address "0.0.0.0", port 5432
Aug 11 11:34:13 perseus postmaster[3176]: 2020-08-11 11:34:13.373 -03 [3176] LOG:  listening on IPv6 address "::", port 5432
Aug 11 11:34:13 perseus postmaster[3176]: 2020-08-11 11:34:13.375 -03 [3176] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Aug 11 11:34:13 perseus postmaster[3176]: 2020-08-11 11:34:13.380 -03 [3176] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
Aug 11 11:34:13 perseus postmaster[3176]: 2020-08-11 11:34:13.399 -03 [3176] LOG:  redirecting log output to logging collector process
Aug 11 11:34:13 perseus postmaster[3176]: 2020-08-11 11:34:13.399 -03 [3176] HINT:  Future log output will appear in directory "log".
Aug 11 11:34:17 perseus systemd[1]: postgresql-12.service: Main process exited, code=exited, status=1/FAILURE
Aug 11 11:34:17 perseus systemd[1]: postgresql-12.service: Killing process 3177 (postmaster) with signal SIGKILL.
Aug 11 11:34:17 perseus systemd[1]: postgresql-12.service: Failed with result 'exit-code'.
Aug 11 11:34:17 perseus systemd[1]: Failed to start PostgreSQL 12 database server.
-- Subject: Unit postgresql-12.service has failed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit postgresql-12.service has failed.
--
-- The result is RESULT.
Aug 11 11:34:17 perseus sudo[3167]: pam_unix(sudo:session): session closed for user root
Aug 11 11:34:38 perseus sudo[3188]: postgres : TTY=pts/0 ; PWD=/var/lib/pgsql ; USER=root ; COMMAND=/bin/journalctl -xe
Aug 11 11:34:38 perseus sudo[3188]: pam_systemd(sudo:session): Cannot create session: Already running in a session or user slice
Aug 11 11:34:38 perseus sudo[3188]: pam_unix(sudo:session): session opened for user root by root(uid=0)
详细模式下的数据库日志:

    2020-08-11 15:23:01.400 -03 [7405] LOG:  00000: database system was interrupted; last known up at 2020-08-07 11:37:10 -03
2020-08-11 15:23:01.400 -03 [7405] LOCATION:  StartupXLOG, xlog.c:6305
2020-08-11 15:23:05.160 -03 [7405] FATAL:  58P01: could not open directory "": No such file or directory
2020-08-11 15:23:05.160 -03 [7405] LOCATION:  ReadDirExtended, fd.c:2563
2020-08-11 15:23:05.161 -03 [7403] LOG:  00000: startup process (PID 7405) exited with exit code 1
2020-08-11 15:23:05.161 -03 [7403] LOCATION:  LogChildExit, postmaster.c:3675
2020-08-11 15:23:05.161 -03 [7403] LOG:  00000: aborting startup due to startup process failure
2020-08-11 15:23:05.161 -03 [7403] LOCATION:  reaper, postmaster.c:2945
2020-08-11 15:23:05.163 -03 [7403] LOG:  00000: database system is shut down
2020-08-11 15:23:05.163 -03 [7403] LOCATION:  UnlinkLockFiles, miscinit.c:860
PGDATA目录:

[postgres@perseus ~]$ ll -la /var/lib/pgsql/12/data/
total 88
drwx------. 20 postgres postgres  4096 Aug 11 15:49 .
drwx------.  4 postgres postgres    66 Aug 11 14:55 ..
drwx------. 26 postgres postgres  4096 Jul 28 09:29 base
-rw-------   1 postgres postgres    30 Aug 11 15:49 current_logfiles
drwx------.  2 postgres postgres  4096 Aug 11 09:34 global
-rw-r--r--   1 root     root       560 May 29 10:05 global.sql
drwx------.  2 postgres postgres   188 Aug 11 15:50 log
drwx------.  2 postgres postgres     6 May 22 09:16 pg_commit_ts
drwx------.  2 postgres postgres     6 May 22 09:16 pg_dynshmem
-rw-------   1 postgres postgres  4329 May 28 09:07 pg_hba.conf
-rw-------.  1 postgres postgres  1636 May 22 09:16 pg_ident.conf
drwx------.  4 postgres postgres    68 Aug  7 11:37 pg_logical
drwx------.  4 postgres postgres    36 May 22 09:16 pg_multixact
drwx------.  2 postgres postgres    18 Aug 11 15:49 pg_notify
drwx------.  2 postgres postgres     6 May 22 09:16 pg_replslot
drwx------.  2 postgres postgres     6 May 22 09:16 pg_serial
drwx------.  2 postgres postgres     6 May 22 09:16 pg_snapshots
drwx------.  2 postgres postgres     6 Jul 24 14:45 pg_stat
drwx------.  2 postgres postgres  4096 Aug 11 15:49 pg_stat_tmp
drwx------.  2 postgres postgres    18 Jul 28 09:36 pg_subtrans
drwx------.  2 postgres postgres     6 May 22 09:16 pg_tblspc
drwx------.  2 postgres postgres     6 May 22 09:16 pg_twophase
-rw-------.  1 postgres postgres     3 May 22 09:16 PG_VERSION
drwx------.  3 postgres postgres  4096 Jul 31 17:16 pg_wal
drwx------.  2 postgres postgres  4096 Jun  3 11:51 pg_xact
-rw-------.  1 postgres postgres    88 May 22 09:16 postgresql.auto.conf
-rw-------   1 postgres postgres 26808 Aug 11 15:22 postgresql.conf
-rw-------   1 postgres postgres    58 Aug 11 15:49 postmaster.opts
-rw-r--r--   1 root     root      1160 May 29 09:08 teste.backup

使用更多数据编辑。

读取PostgreSQL日志文件。日志文件显示:
2020-08-11 09:43:11.009-03[2066]日志:数据库系统中断;最后已知时间为2020-08-07 11:37:10-03 2020-08-11 09:43:13.285-03[2066]致命:无法打开目录“”:没有此类文件或目录2020-08-11 09:43:13.286-03[2064]日志:启动进程(PID 2066)退出,退出代码为1 2020-08-11 09:43:13.286-03[2064]日志:由于启动进程失败而中止启动2020-08-11 09:43:13.288-03[2064]日志:数据库系统已关闭
您是否对操作系统进行了任何软件升级?再次运行systemd启动过程,并根据错误消息查看
“journalctl-xe”
显示的内容。
“/var/lib/pgsql/12/data”的目录列表是什么
。请将此信息包含在原始问题中,这样大家就不会阅读评论了。@Adriankeraver我在问题中添加了更多数据,例如日志信息。关于
/var/lib/pgsql/12/data
的目录列表如何?还有对操作系统和/或Postgres的任何升级吗?不幸的是,systemd日志只是重复了star的内容显示tup错误消息。读取PostgreSQL日志文件。日志文件显示:
2020-08-11 09:43:11.009-03[2066]日志:数据库系统被中断;最后一次知道是在2020-08-07 11:37:10-03 2020-08-11 09:43:13.285-03[2066]致命:无法打开目录“”:没有这样的文件或目录2020-08-11 09:43:13.286-03[2064]日志:启动过程(PID 2066)退出,退出代码为1 2020-08-11 09:43:13.286-03[2064]日志:由于启动进程失败而中止启动2020-08-11 09:43:13.288-03[2064]日志:数据库系统已关闭
是否对操作系统进行了任何软件升级?再次运行systemd启动进程,并根据错误消息查看“journalctl-xe”显示。
“/var/lib/pgsql/12/data”的目录列表是什么
。请将此信息包含在原始问题中,这样大家就不会阅读评论了。@Adriankeraver我在问题中添加了更多数据,例如日志信息。关于
/var/lib/pgsql/12/data
的目录列表如何?还有对操作系统和/或Postgres的任何升级吗?不幸的是,systemd日志只是重复了star的内容显示tup错误消息。