postgresqlの起動に失敗しました

postgresqlの起動に失敗しました

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

関連情報