Debian 서버를 시작한 후 다음 오류가 발생합니다.
[ASSERT] PostgreSQL 클러스터 14에 대한 어설션이 실패했습니다.
내 PostgreSQL이 활성 상태입니다(이 명령으로 확인했습니다.)systemctl status [email protected]
구글링해서 이런 글을 찾았습니다. 시작 시 PostgreSQL 클러스터 10-main을 시작할 수 없습니다 하지만 나에게는 모든 것이 괜찮습니다.
나는 더 많이 검색했지만 나에게 맞는 것을 찾을 수 없었습니다.
답변1
적절한 권한을 얻으려면 클러스터 구성 파일의 경로를 확인해야 합니다.
$ ls -l /etc/postgresql/14/main/postgresql.conf
-rw-r--r-- 1 postgres postgres 1005 Oct 3 16:07 /etc/postgresql/14/main/postgresql.conf
Debian에서 systemd 서비스 단위에는 다음이 포함됩니다:/lib/systemd/system/[email protected]
[Unit]
Description=PostgreSQL Cluster %i
AssertPathExists=/etc/postgresql/%I/postgresql.conf
RequiresMountsFor=/etc/postgresql/%I /var/lib/postgresql/%I
기본적으로 오류 메시지 /etc/postgresql/%I/postgresql.conf
는 찾을 수 없음을 알려줍니다. %I
에 삽입해야 하므로 14/main
systemd에서 파일을 읽는 데 문제가 있습니다 /etc/postgresql/14/main/postgresql.conf
.
답변2
내 경우에는 "어설션 작업 실패" 오류가 발생했습니다.[이메일 보호됨]. ”는 잘못된 서비스 이름(postgresql@14)을 시작하려고 했기 때문입니다. 올바른 이름(postgresql@14-main)을 사용하면 부팅 시 잘못된 서비스가 활성화되었을 수 있습니다.
답변3
나는 SystemD와 극도로 증오스러운 관계를 맺고 있습니다. 이에 대해 여러 건의 티켓이 있었고 Lennard Poetering은 어깨를 으쓱했습니다...
즉, 문제는 나다내 거사례가 이상해 보입니다. client-pg15-01
SystemD는 공백 대시 등을 볼 때 서비스 이름과 파일 이름을 대체하는 등의 작업을 수행하며 끔찍한 규칙이 있습니다(예, 데스크톱에 비해 서버 운영자에게 덜 유용하기 때문에 짜증납니다. /laptop jockey라고 말하는 것은 짜증납니다. ) 따라서 긴 대답은 이에 대한 정규식을 난독화하지 말고 clientnamepg15number01
서비스 이름을 난독화할 수 있는 항목 없이 간단한 이름을 제공하는 것입니다.