Redhat 7.1에 postgresql 데이터베이스를 설치하고 데이터베이스를 논리 볼륨 내부의 ISCSI 장치(LUN)로 이동하고 컴퓨터 시작 시 이를 마운트하기로 결정했습니다(xfs 형식). 마운트 지점은 /var/lib/pgsql입니다.
서버가 시작되면 postgresql.service는 실패한 상태입니다.
message.log에서:
systemd: mounting /var/lib/pgsql
starting PostgreSQL database server
kernel sdv: unknown partition table
sd 2:0:0:0: [sdb] attached SCSI disk
xfs (dm-4): Mounting V4 Filesystem
postgresql-check-db-dir: "/var/lib/pgsql/data" is missing or empty
postgresql.service: control process exited, code=exited status=1
Failed to start PostgreSQL database server.
서버에 로그인할 때 데이터베이스를 수동으로 시작하려고 하면: systemctl start postgresql
--> 확인(데이터가 손실되지 않고 데이터베이스를 사용할 수 있습니다)
시작하는 동안 순서 문제인 것 같습니다. 네트워크 서비스를 시작한 다음 iscsi, lvm 등을 시작해야 합니다.
그래서 "After=lvm-pgscan.service iscsi.service" 등을 추가하여 /usr/lib/systemd/system/postgresql.service에 대한 종속성을 강제로 시도했지만 아무 것도 변경되지 않았습니다.
어떤 아이디어가 있나요?
답변1
댓글 문자열로 볼 때 edit를 사용하면 문제가 해결 /usr/lib/systemd/system/postgresql.service
될 것으로 보입니다 . After=local-fs.target
나에게 프롬프트는 다음 메시지였습니다.
postgresql-check-db-dir: "/var/lib/pgsql/data"가 없거나 비어 있습니다.
이는 Postgres가 /var
설치 전에 시작을 시도하고 있음을 의미합니다. after
제한을 추가하면 systemd는 postgres를 시작하기 전에 로컬 파일 시스템이 마운트될 때까지 기다리게 됩니다.