アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして、tanu_2です。
玄箱HGをDebian化し、いろいろと遊んでいます。

PostgreSQLをapt-getでインストールし、Webアプリを動かしていたのですが、昨日より突然、PostgreSQLが動かなくなってしまいました。
原因が分からず、サーバを再起動し、
# /etc/init.d/postgresql start

$ pg_ctl start
などを試してみたのですが、動きません。
念のため、初期化(initdb)も試みたのですが、これも失敗してしまいます。
/var/log/postgresql/postgres/logを覗いてみると、

FATAL: could not write lock file "/var/lib/postgres/data/postmaster.pid": No space

となっており、上記ディレクトリにpostmaster.pid書き込みできないよ、と言われているっぽかったので、パーミッションを変更したりして
みましたが、postgresql startにしろ、pg_ctl startにしろ、それぞれのコマンドで起動すると、強制的にパーミッションが「700」に変更されてしまうようで、結果は同じでした。

どなたか、解決策をご教示願えませんでしょうか?

よろしくお願いします。m(_ _)m

A 回答 (4件)

それ以外にも、以下のようなコマンドを使ってデータベースサーバプログラムの起動が出来ますよね。



postmaster -D /usr/local/pgsql/data

ただ、以下のURLのドキュメント内には、次のような記述があります。

「何を実行するにしても、サーバはPostgreSQLユーザアカウントで起動させなければなりません。 rootであってはいけませんし、他のユーザでもいけません。」

パッケージによるインストールであれば、自動でpostgresユーザが作られているはずだと思うけど。(Debianは使ったことないので、確証はなし。)

su - postgres

上記のコマンドでログインするなり、パスワードを忘れたのならroot権限にてpasswdコマンドから変更するなりした後、もう一度postmasterを起動してみよう!

ちなみに、パーミッション関係のエラーは、「Permission denied」ですよね。

参考URL:http://www.postgresql.jp/document/pg803doc/html/ …
    • good
    • 1

#4です。

ほっ、間に合ってよかった。(いえ、独り言です。)


「postmaster」っていうのは、PostgreSQLのデーモンプロセスでもあるわけだから、rootでも操作が出来なくはないはず・・・、といろいろといじっていましたらGUIでの操作方法を発見です。(以下、Fedora Core6[KDE]のばあい。)

1.「K メニュー」→「システム」→「Services」より"system-config-services"を起動.
2.「postgresql」の所にチェックを入れてから、「開始」ボタンを押下。

ちなみに、上記と同じことをCUIにて行いたいのであれば、Red Hat 系の場合は、以下のコマンドを実行します。

/etc/rc.d/init.d/postgresql start

で、質問者さんの場合では何故できなかったのかに関しては、以下のサイトを参考にしてください。(私自身、詳しくは分かりません。近々、Ubuntuもさわってみようかな~と考えているので、その時までには理解しておこうかなと。)

Debianでの起動処理(init)とランレベル(rc.d)の制御
http://park15.wakwak.com/~unixlife/linux/de-init …

インストール手順などが載っているサイト上では、よく「起動スクリプトの作成」についての説明があったりしますが、以下の過去ログにもある通り、通常はいちいち作らなくてもいいはず。

「RedHat ES4でPostgreSQLを自動起動したい」
http://oshiete1.goo.ne.jp/qa2848463.html

ちなみに、既存の起動スクリプトの場所がどこか知りたいのなら、「ファイル/フォルダを検索」にて名前(N):は「postgres」、参照(I):は「file:///」とすれば、だーっといろいろと出てくることと思う。

最後に、DB管理者さん向けのサイト。

エラー時の対処法
http://mland98.rc.kyushu-u.ac.jp/text/skyboard-2 …

この回答への補足

下記のTCP/IP接続に関する補足です。

/var/lib/postgres/data/postgresql.conf

にある

#tcpip_socket = false



tcpip_socket = true

に変更した後、root権限で

# /etc/init.d/postmaster restart

を実行したところ、うまくいくようになりました。

どうやら、PostgreSQLでは、TCP/IPでの接続はデフォルトとはなっておらず、localhost への接続だった場合は、UNIX ドメインソケット経由にした方が接続の速度が速いので、そのようになっているようです。

本当に、勉強になりました。
重ねて、ご回答頂きました皆様に御礼申し上げます。m(_ _)m

補足日時:2007/06/21 10:56
    • good
    • 0
この回答へのお礼

choconamacreamさん、いろいろと詳細な情報までご提供いただきまして、ありがとうございました。m(_ _)m

教えて頂きました情報に基づき、いろいろと試してみたところ、ようやくうまくいきました。
本当にありがとうございました。

原因は、ユーザpostgresのホームディレクトリに作成されていた~data/以下のディレクトリの権限がrootになっていたため、initdbが失敗してしまい、postmasterが起動できなくなっているというもののようでした。
なぜ、root権限になってしまったのかは不明ですが、

$ rm -Rf ~/data/
# rm -Rf /var/lib/postgres/data

とし、それぞれのdataディレクトリを削除した後、

$ initdb

を実行し、DBを初期化、さらに

$ postmaster -i -D /var/lib/postgres/data

により、postmasterを実行することにより解決しました。
ちなみに、root権限による

# /etc/init.d/postgres start

では、TCP/IPでの接続ができない旨、エラーメッセージが出てきてしまい、うまくいかなかったので、postgres権限による-iオプションを付けた起動としました。

PostgreSQLの運用・管理は数年やっているのですが、こんな原因でうまくいかないという状況にはまってしまったのは、初めてだったもので、皆様のお力をお借りさせていただきました。

今回の件で、いろいろと勉強させていただきました。
本当に、ありがとうございました。m(_ _)m

お礼日時:2007/06/21 10:47

"/var/lib/postgres/data/postmaster.pid"


を削除すれば、どうですか
ちなみに、削除しても大丈夫と思うよ
私も、2~3回、経験がある。
まあ、私の場合を同じ原因とは限りませんが
ためしに、やってみては。
    • good
    • 0
この回答へのお礼

gyrocompasさん、回答をいただきまして、ありがとうございました。
(返事が遅くなってしまい、申し訳ございませんでした。m(_ _)m)

教えて頂いた方法ですが、すでに実施していたのですが、解決には至りませんでした。orz

何が悪いんでしょうか???

お礼日時:2007/06/15 19:09

No space

この回答への補足

pastelflowさん、早速の書き込みをいただき、ありがとうございます。

エラーメッセージが途中で切れていました。
正しくは、

 No space left on device

です。ちなみに、このエラーメッセージはpg_ctl startを実行した際のものです。

root権限で、/etc/init.d/postgresql startを実行した際には、若干違うメッセージが出ます。

Starting PostgreSQL database server: postmaster(FAILED)
ERROR: ERROR: PostgreSQL postmaster did not start because of an unknown reason.
/usr/lib/postgresql/bin/postgresql-startup: line 161: cannot create temp file for here document: No space left on device

両方とも、「No space left on device」と出ているのですが、どうすれば解決できるものかと悩んでいます。

補足日時:2007/06/08 13:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A