gpinitsystemでセグメントの初期化に失敗する

gpinitsystemが失敗してログを見ると下記のようなエラーが発生している場合

initdb: error 256 from: "/usr/local/greenplum-db-4.0.4.0/bin/postgres" --boot -x0 -F -c max_connections=125 -c shared_buffers=400
0 -c max_fsm_pages=200000 < "/dev/null" > "/dev/null" 2>&1

sysctlの設定が悪いことが多いようです。今回の例では上記のsysctl.confの追記をすべて消したらうまく行きました。こういうバッドノウハウはやってみないとわからないですね。

復旧方法

途中までいって中途半端に死んだ場合は、

  • ps -ef | grep postgresでプロセスを確認
  • killall postgresで削除
  • それでだめならkillall -9 postgres
  • あとはrm -rf /data/master/* /data/segments/*でデータもきれいに

って感じですね。