質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.78%

PostgreSQLでCREATE DATABASEをするとクラッシュしてしまう

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,355

cometbeet

score 21

前提・実現したいこと

現在WSLにPostGreSQLを入れようとしています。
その際色々いじっていたらCREATE DATABASEをするとクラッシュするようになってしまいました。
他に入れてあるubutnu18では起きてないので何か設定が悪いのかと思います。

発生している問題・エラーメッセージ

間違えたPostgresSQLを起動したままpg_hba.confのpeerをmd5に変えたところエラーが起きてPostgreSQLが起動しなくなりました。
その際色々いじっていたのですがうまくいかず結局PostgreSQLをすべてapt remove,apr purgeして入れなおすと起動するようになりました。
しかしそのあと上記の通りCREATE DATABASEをするとエラーが起きクラッシュ?してしまうようになりました。

postgres=# create database XXX;
WARNING:  他のサーバプロセスがクラッシュしたため接続を終了しています
DETAIL:  他のサーバプロセスが異常終了し共有メモリが破損した可能性がありましたので、
postmasterはこのサーバプロセスに対し、現在のトランザクションをロールバック
し終了するよう指示しました。
HINT:  この後、データベースに再接続し、コマンドを繰り返さなければなりません。
サーバとの接続が想定外にクローズされました
        おそらく要求の処理前または処理中にサーバが異常終了
        したことを意味しています。
サーバーへの接続が失われました。リセットしています: 失敗。
!>


その後sudo service postgressql startをすると

* Starting PostgreSQL 10 database server                                                                                                                                           * Error: /usr/lib/postgresql/10/bin/pg_ctl /usr/lib/postgresql/10/bin/pg_ctl start -D /var/lib/postgresql/10/main -l /var/log/postgresql/postgresql-10-main.log -s -o  -c config_file="/etc/postgresql/10/main/postgresql.conf"  exited with status 1: 
2019-04-05 18:11:39.746 JST [24551] LOG:  IPv4アドレス"127.0.0.1"、ポート5432で待ち受けています
2019-04-05 18:11:39.763 JST [24551] LOG:  Unixソケット"/var/run/postgresql/.s.PGSQL.5432"で待ち受けています
2019-04-05 18:11:39.850 JST [24552] LOG:  データベースシステムは中断されました: 2019-04-05 17:49:31 JST まで動作していたことは確認できます
2019-04-05 18:11:39.852 JST [24552] PANIC:  ダーティーデータを書き出しできませんでした: 関数は実装されていません
2019-04-05 18:11:39.866 JST [24551] LOG:  起動プロセス (PID 24552)はシグナル6で終了しました: Aborted
2019-04-05 18:11:39.866 JST [24551] LOG:  起動プロセスの失敗のため起動を中断しています
2019-04-05 18:11:39.879 JST [24551] LOG:  データベースシステムはシャットダウンしました
pg_ctl: サーバを起動できませんでした。
ログ出力を確認してください。


ログのほうは

2019-04-05 17:44:31.830 JST [24439] LOG:  IPv4アドレス"127.0.0.1"、ポート5432で待ち受けています
2019-04-05 17:44:31.840 JST [24439] LOG:  Unixソケット"/var/run/postgresql/.s.PGSQL.5432"で待ち受けています
2019-04-05 17:44:31.913 JST [24440] LOG:  データベースシステムは 2019-04-05 17:44:15 JST にシャットダウンしました
2019-04-05 17:44:32.048 JST [24439] LOG:  データベースシステムの接続受け付け準備が整いました。
2019-04-05 17:44:32.597 JST [24447] [不明]@[不明] LOG:  開始パケットが不完全です
2019-04-05 17:52:23.995 JST [24441] PANIC:  ダーティーデータを書き出しできませんでした: 関数は実装されていません
2019-04-05 17:52:24.035 JST [24439] LOG:  チェックポイント処理プロセス (PID 24441)はシグナル6で終了しました: Aborted
2019-04-05 17:52:24.035 JST [24439] LOG:  他の活動中のサーバプロセスを終了しています
2019-04-05 17:52:24.035 JST [24480] postgres@postgres WARNING:  他のサーバプロセスがクラッシュしたため接続を終了しています
2019-04-05 17:52:24.035 JST [24480] postgres@postgres 詳細:  他のサーバプロセスが異常終了し共有メモリが破損した可能性がありましたので、
  postmasterはこのサーバプロセスに対し、現在のトランザクションをロールバック
  し終了するよう指示しました。
2019-04-05 17:52:24.035 JST [24480] postgres@postgres ヒント:  この後、データベースに再接続し、コマンドを繰り返さなければなりません。
2019-04-05 17:52:24.035 JST [24444] WARNING:  他のサーバプロセスがクラッシュしたため接続を終了しています
2019-04-05 17:52:24.035 JST [24444] 詳細:  他のサーバプロセスが異常終了し共有メモリが破損した可能性がありましたので、
  postmasterはこのサーバプロセスに対し、現在のトランザクションをロールバック
  し終了するよう指示しました。
 2019-04-05 17:52:24.035 JST [24444] ヒント:  この後、データベースに再接続し、コマンドを繰り返さなければなりません。
 2019-04-05 17:52:24.076 JST [24488] postgres@postgres FATAL:  データベースシステムはリカバリモードです
 2019-04-05 17:52:24.086 JST [24439] LOG:  全てのサーバプロセスが終了しました: 再初期化しています
 2019-04-05 17:52:24.143 JST [24489] LOG:  データベースシステムは中断されました: 2019-04-05 17:49:31 JST まで動作していたことは確認できます
 2019-04-05 17:52:24.144 JST [24489] PANIC:  ダーティーデータを書き出しできませんでした: 関数は実装されていません
 2019-04-05 17:52:24.153 JST [24439] LOG:  起動プロセス (PID 24489)はシグナル6で終了しました: Aborted
 2019-04-05 17:52:24.153 JST [24439] LOG:  起動プロセスの失敗のため起動を中断しています
 2019-04-05 17:52:24.169 JST [24439] LOG:  データベースシステムはシャットダウンしました

試したこと

上記に記した通りapt remove,apt puregeは試してみました。
またdataディレクトリを削除してinitdbも行ってみました。
そうすると起動はするのですがCREATE DATABASEでだめになってしまいます。

補足情報(FW/ツールのバージョンなど)

WSL:Ubuntu16.04
OS:Windows10 pro 1809

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

一応解決したといえば解決したので。

ここここで書かれている通り、どうやらPostgreSQLのfsync機能がうまく機能していないために出ているエラーのようです。
そこでここで書かれているように/etc/postgresql/10/main/postgresql.confにfsync = offを追記して起動すると問題なく起動できました。

ただ、試行錯誤してる際にインストールしたUbuntu16、18のほうではこの問題が起きなかったためインストールした時期、またはWindowsのバージョンによっては解決している可能性があるのかもしれません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る