[解決済み] 最新バージョンのOS X (Yosemite または El Capitan) をインストールした後に `pg_tblspc` が見つからない。
質問
OS Xでhomebrewのpostgresを使っていますが、システムを再起動するとpostgresが起動しないことがあるので、手動で
postgres -D /usr/local/var/postgres
というメッセージが表示され、エラーが発生します。
FATAL: could not open directory "pg_tblspc": No such file or directory
.
前回発生した時は、元の状態に戻せなかったので、postgresのシステムごとアンインストールしてから、再インストールしてユーザー、テーブル、データセットなどを作成することにしました。とても嫌な感じでしたが、私のシステムでは数ヶ月に一度とか頻繁に発生します。
では、なぜ
pg_tblspc
ファイルを頻繁に使用しますか?また、ファイルの消失を防ぐために何かできることはありますか?
自作機とpostgresを最新版にアップグレードしていない(つまり、同じバージョンを使っている)のです。また、postgresのデータベースで行ったことは、毎日テーブルを削除して新しいデータを投入することだけです。ユーザーやパスワードなどは変更していません...。
EDIT (mbannert)です。 このスレッドはgoogleでこの問題のトップヒットであり、多くの人にとって症状が異なるため、これを追加する必要があると感じました。自作派はこのエラーメッセージに遭遇する可能性が高いです。
No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Yosemiteアップグレード後にこの問題が発生した場合、このスレッドを読むことで今のところカバーされています。
解決方法は?
解決した...一部ですが。
どうやら、OS Xの最新版(YosemiteやEl Capitanなど)をインストールすることで、以下のディレクトリが削除されるようです。
/usr/local/var/postgres
.
この問題を解決するには、不足するディレクトリを再作成するだけです。
mkdir -p /usr/local/var/postgres/pg_commit_ts
mkdir -p /usr/local/var/postgres/pg_dynshmem
mkdir -p /usr/local/var/postgres/pg_logical/mappings
mkdir -p /usr/local/var/postgres/pg_logical/snapshots
mkdir -p /usr/local/var/postgres/pg_replslot
mkdir -p /usr/local/var/postgres/pg_serial
mkdir -p /usr/local/var/postgres/pg_snapshots
mkdir -p /usr/local/var/postgres/pg_stat
mkdir -p /usr/local/var/postgres/pg_stat_tmp
mkdir -p /usr/local/var/postgres/pg_tblspc
mkdir -p /usr/local/var/postgres/pg_twophase
あるいは、もっと簡潔に( おかげさまで ネイト ):
mkdir -p /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}
再走行
pg_ctl start -D /usr/local/var/postgres
を実行すると、サーバーが正常に起動し、少なくとも私の場合は、データの損失はありませんでした。
アップデイト
私のシステムでは、Postgresの実行中であっても、これらのディレクトリのいくつかは空です。 もしかしたら、Yosemiteがクリーニングの一環として、空のディレクトリを削除しているのでしょうか?いずれにせよ、将来的に削除されないように、各ディレクトリに'.keep'ファイルを作成しました。
touch /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}/.keep
備考
: を作成することで
.keep
ファイルをこれらのディレクトリに置くと、ログファイルにノイズが発生しますが、他のものには悪影響はないようです。
関連
-
[解決済み] ダウンロードできない、$GOPATHが設定されていない
-
[解決済み] ターミナルで行数を表示しようとすると、"xargs unterminated quote "というエラーが発生する。
-
[解決済み] ターミナルからmvim(MacVim)を実行するには?
-
[解決済み] Postgres - FATAL: データベースファイルはサーバーと互換性がありません。
-
[解決済み] zshでnpmインストール後にコマンドが見つからない
-
[解決済み] macOS v11 (Big Sur)でパーミッションの関係でアプリを実行できない。
-
[解決済み] gdbが「プロセスIDのMachタスクポートが見つからない」というエラーで失敗する
-
[解決済み] Mac OSでNode.jsを最新バージョンにアップグレードする。
-
[解決済み] Mac OS Xのターミナルで、前の出力をクリアするにはどうすればよいですか?
-
[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ダウンロードできない、$GOPATHが設定されていない
-
[解決済み] ターミナルで行数を表示しようとすると、"xargs unterminated quote "というエラーが発生する。
-
[解決済み] そのような keg はありません: /usr/local/Cellar/git
-
[解決済み] AppleScript Editorで、"Result "ウィンドウにメッセージを書き込む
-
[解決済み] mongod、mac os x - rlimits 警告 [閉鎖].
-
[解決済み] MacでGNUのreadlink -fの動作を得るにはどうしたらいいですか? [クローズド]です。
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] macOS v11 (Big Sur)でパーミッションの関係でアプリを実行できない。
-
[解決済み] "コード" OSX/MacのVisual Studio Codeのコマンドラインでは動作しない
-
[解決済み] Postgresがサーバーに接続できない