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を開始する前にローカルファイルシステムがマウントされるのを待ちます。