postgresサーバーが起動に失敗し、ログが生成されない、トラブルシューティングの方法は?


33

私はubuntu 12.04サーバーでpostgres 9.3インスタンスを起動しています:

~# service postgresql start 

 * The PostgreSQL server failed to start. Please check the log output.
                                                                     [fail]

起動は失敗しますが、ログは残りません。このファイルは空です:

tail /var/log/postgresql/postgresql-9.3-main.log 

このディレクトリには他のファイルはありません:/ var / log / postgresql /

これをトラブルシューティングする最良の方法は何ですか?


これは新しいpgインストールですか、それともアップグレードを行っただけですか?postgresユーザーがpg構成ファイルとログファイルに対する権限を持っていることを確認してください
LinuxDevOps 14

3
通常、(実行中のpostgresのあなたのスクリプトが行うのと同じ方法を試してみてsu - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data、それはあなたを与えるものを参照してくださいあなたは、あなたのセットアップに応じて変化するユーザー名とパスする必要があるかもしれません。。
ジェニーDは回復モニカ言う

@JennyDが言ったことに加え-d 3て、postgresコマンドに追加します。これにより、ログに書き込まれるより広範なデバッグ出力が可能になります。1または2に変更してデバッグ出力を下げるか、4または5に変更してデバッグ出力を増やしwhich pgsqlます。
zymhan

PostgreSQLはサーバーにどのように、どこからインストールされましたか?/ var / log / syslog、/ var / log / messagesなど、システムログに何かありますか?
クレイグリンガー14

6
この質問が閉じられた理由がわかりません。
ゲットリ

回答:


53

デバッグを有効にして手動で実行してみてください。これにより、フォアグラウンドで実行され、すべてのエラーメッセージが標準エラーに出力されますが、冗長性も高まります。

これはUbuntu上のPostgreSQL 9.3の正しいコマンドラインになると思いますが、若干の微調整が必​​要になる場合があります(注:読みやすくするために行を分割します。必要に応じて1行に(バックスラッシュなしで)再結合できます)。

/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
   -c config_file=/etc/postgresql/9.3/main/postgresql.conf

最初はpostgresバイナリの場所です。デバッグを有効にし、レベル3に設定します(これを上下に調整して、冗長性を増減できます)。次に、開始するデータディレクトリと設定ファイルを指定します。これらはUbuntu Server 12.04のデフォルトであるはずです。

問題がどこにあるかを判断するのに十分な情報が得られれば幸いです。


1
手動で開始することは私にとってはうまくいきますが、サービスを使用してもまだうまくいきません。デフォルトのデータディレクトリを変更しましたが、postgresを起動するためにサービスコマンドを再び機能させるために更新する必要があるものはありますか?
chrismarx 14

1
@chrismarx-このserviceコマンドは/etc/init.d/、実際にプロセスを開始および停止するスクリプトの便利なラッパーです。そのスクリプトを見て、手動で実行したときとは異なる動作を確認する必要があります。何かをbash -x /etc/init.d/postgresql startすることは、あなたの研究を始める良い場所かもしれません。
クリストファーキャシェル14

3
おかげで、私はこれは権限がデータディレクトリに問題があった、ソートされ、また、sudoで実行されなければならなかったサービスのように思えるしまった
chrismarx

1
命の恩人。許可の問題のためにデータディレクトリにアクセスできなかったため、PostgreSQLが起動しない理由を知る他の方法を見つけることができませんでした。
アロンロリンチ

1
私にとっては、configs / etc / postgresql /の許可でした
eugene
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.