LoginSignup
1
1

More than 1 year has passed since last update.

PostgreSQL立ち上げ(pg_ctl系コマンド)

Last updated at Posted at 2022-08-29

DBクラスタ作成

【オプション一覧】

  • -D:DBクラスタを作成する空のdirを指定する。dirが存在しない場合は、新たに作成する。空でない場合は、エラー
  • -o '':''内に以下のオプションを指定することができる。
    • -E(--encoding=エンコーディング):エンコーディングを指定。
      • 未指定の場合は、OSのロケールになる。
    • --locale=ロケール:ロケールを指定。
      • 未指定の場合は、OSのロケールになる。
    • --nolocale:ロケールを無効にする。推奨されている。--locale=Cと同じ。
    • -U(--username=初期DBユーザ名):作成する初期DBユーザ(スーパーユーザ)名を指定。
      • 未指定の場合は、PostgreSQL管理ユーザと同名になる
$ pg_ctl initdb -D ./psql_test -o '--no-locale'
  • 上記のコマンドを実行してDBクラスタを作成する
  • 上記のコマンドを実行したOSユーザは、PostgreSQLの管理ユーザになる。作成したDBクラスタ(dir)にアクセスできるOSユーザは、PostgreSQL管理ユーザのみ
  • PostgreSQL標準のpg_ctl系コマンドは、PostgreSQL管理ユーザのみ実行することができる
  • また、pg_ctl系コマンドは、リモートでの実行はできず、ホストからしか実行することはできない

※PostgreSQL管理ユーザ = DBクラスタ(dir)を管理するOSユーザ

PostgreSQLサーバ起動

【オプション一覧】

  • -D:DBクラスタを作成する空のdirを指定する。dirが存在しない場合は、新たに作成する。空でない場合は、エラー
  • -t:起動までの最大待ち時間を指定(デフォルトで60秒)
$ pg_ctl start -D ./psql_test

PostgreSQLサーバ停止

【オプション一覧】

  • -D:DBクラスタを作成する空のdirを指定する。dirが存在しない場合は、新たに作成する。空でない場合は、エラー
  • -t:起動までの最大待ち時間を指定(デフォルトで60秒)
  • -W:サーバの停止を待たずに、停止コメントを表示する
  • -m:シャットダウンモードを指定する
    • s(smart):クライアントからの接続が全て切断されることを待ってから停止する。
    • f(fast):クライアントからの接続を全て、強制的に切断してから停止する。実行中のトランザクションは全てROLLBACKする。(デフォルト)
    • i(immediate):クライアントからの接続を全て、強制的に切断してから停止する。次回の起動時には復旧処理が必要になる。クラッシュと同じ状態。
$ pg_ctl stop -D ./psql_test -m fast

サーバの再起動

【オプション一覧】

  • -D:DBクラスタを作成する空のdirを指定する。dirが存在しない場合は、新たに作成する。空でない場合は、エラー
  • -t:起動までの最大待ち時間を指定(デフォルトで60秒)
  • -m:シャットダウンモードを指定する
    • s(smart):クライアントからの接続が全て切断されることを待ってから停止する。
    • f(fast):クライアントからの接続を全て、強制的に切断してから停止する。実行中のトランザクションは全てROLLBACKする。(デフォルト)
    • i(immediate):クライアントからの接続を全て、強制的に切断してから停止する。次回の起動時には復旧処理が必要になる。クラッシュと同じ状態。
$ pg_ctl restart -D ./psql_test

サーバの起動状況を確認

【オプション一覧】

  • -D:DBクラスタを作成する空のdirを指定する。dirが存在しない場合は、新たに作成する。空でない場合は、エラー
$ pg_ctl status -D ./psql_test

設定ファイルの再読み込み

【オプション一覧】

  • -D:DBクラスタを作成する空のdirを指定する。dirが存在しない場合は、新たに作成する。空でない場合は、エラー
$ pg_ctl reload -D ./psql_test

プロセスにシグナル送信

【シグナル一覧】

  • TERM:「pg_ctl stop -D~ -m s」と同じ
  • INT:「pg_ctl stop -D~ -m f」と同じ
  • QUIT:「pg_ctl stop -D~ -m i」と同じ
  • HUP:「pg_ctl reload -D~」と同じ
$ pg_ctl reload -D ./psql_test
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1