OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

PostgreSQLの起動・停止

カテゴリ:OSSセットアップ | ソフトウェア:PostgreSQL | タグ:
最終更新日:2020/12/30 | 公開日:2013/09/10

目次

概要

 PostgreSQLインスタンスを起動・停止します。

構成

サーバ構成

OSバージョン

Red Hat Enterprise Linux 5.9 x86_64

パッケージ一覧

postgresql90-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-libs-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-server-9.0.8-1PGDG.rhel6.x86_64.rpm

手順

PostgreSQLの起動

起動

 PostgreSQLの起動は管理ユーザで実行します。 管理ユーザはデータベースクラスタを作成した際に、initdbを実行したLinuxユーザになります。

-bash-3.2$ pg_ctl start -w
サーバの起動完了を待っています.....完了
サーバ起動完了
-bash-3.2$ 
pg_ctl start のオプション
オプション説明
-D <データベースクラスタ>データベースクラスタのディレクトリ名を指定します。省略した場合は $PGDATA 環境変数に設定されているディレクトリが使用されます。
-wウェイトオプション。通常起動コマンドを実行すると、コマンドはすぐに正常終了し、起動処理はバックグラウンドで実行されます。このオプションを付けると、インスタンスの起動を待って、起動完了後にコマンドが終了します。

起動確認

 ps コマンドでプロセスを確認します。 /usr/pgsql-9.0/bin/postgres がマスタサーバプロセスで、 postgres: で始まる名前の6個のプロセスがワーカプロセスです。 PostgreSQLインスタンス起動時に、マスタサーバプロセスが ワーカプロセスを起動し、それぞれ常駐します。 これらプロセス計7個が表示されれば正常と判断します。

-bash-3.2$ ps -ef | grep postgres
avahi     3173     1  0 22:24 ?        00:00:00 avahi-daemon: running [postgresql.local]
root      3344  3313  0 23:11 pts/0    00:00:00 su - postgres
postgres  3345  3344  0 23:11 pts/0    00:00:00 -bash
postgres  3391     1  4 23:11 pts/0    00:00:00 /usr/pgsql-9.0/bin/postgres
postgres  3392  3391  0 23:11 ?        00:00:00 postgres: logger process
postgres  3394  3391  0 23:11 ?        00:00:00 postgres: writer process
postgres  3395  3391  0 23:11 ?        00:00:00 postgres: wal writer process
postgres  3396  3391  0 23:11 ?        00:00:00 postgres: autovacuum launcher process
postgres  3397  3391  0 23:11 ?        00:00:00 postgres: archiver process
postgres  3398  3391  0 23:11 ?        00:00:00 postgres: stats collector process
postgres  3402  3345  0 23:12 pts/0    00:00:00 ps -ef
postgres  3403  3345  0 23:12 pts/0    00:00:00 grep postgres
-bash-3.2$ 

PostgreSQLの停止

停止

 PostgreSQLの停止は起動と同様に管理ユーザで実行します。

-bash-3.2$ pg_ctl stop -m fast
サーバ停止処理の完了を待っています....完了
サーバは停止しました
-bash-3.2$ 
pg_ctl stop のオプション
オプション説明
-D <データベースクラスタ>データベースクラスタのディレクトリ名を指定します。省略した場合は $PGDATA 環境変数に設定されているディレクトリが使用されます。
-m <停止モード>smart: 全てのクライアント接続が切断されるまで待機してから終了します。
fast: 実行中の処理を中断し、全てのクライアント接続を切断してから終了します。
immediate: 実行中の処理を強制終了し、全てのクライアント接続を切断してから終了します。次回起動時にクラッシュリカバリ処理が実行されます。

 停止モードはOracleと同じ immediate が含まれていますが、意味が異なりますのでご注意ください。

PostgreSQLとOracleの停止モード比較
PostgreSQL
の停止モード
Oracle
の停止モード
動作
smartnormal全接続が切断されるまで待機→停止
-transactional現行トランザクションの終了待機→接続を切断→停止
fastimmediate現行トランザクションのロールバック→接続を切断→停止
immediateabort強制停止