PostgreSQL

【PostgreSQL】起動、停止、再起動手順(Linux)

記事内に商品プロモーションを含む場合があります

こんにちは、やすです。

今回は、PostgreSQLの起動・停止・再起動のやり方と自動起動のオンオフのやり方をご紹介します。

「OSコマンドで起動・停止する方法」と「PostgreSQLコマンドで起動・停止する方法」の2パターンあるので、それぞれ見ていきましょう!

PostgreSQLのインストールと初期化をまだしていない人はこちらの記事を参考にしてください。

OSコマンドによる起動・停止

事前確認

(1)稼働確認(起動していないことを確認)
[root@localhost ~]# systemctl status postgresql
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: inactive (dead)
(省略)
[root@localhost ~]#

(2)稼働確認(プロセス)
[root@localhost ~]# ps aux | grep postgres | grep -v grep
[root@localhost ~]#

起動・停止・再起動

(3)起動
[root@localhost ~]# systemctl start postgresql
[root@localhost ~]#

※停止の場合
[root@localhost ~]# systemctl stop postgresql
[root@localhost ~]#

※再起動の場合
[root@localhost ~]# systemctl restart postgresql
[root@localhost ~]#

事後確認

(4)稼働確認
[root@localhost ~]# systemctl status postgresql
 ● postgresql.service - PostgreSQL database server
 Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
 Active: active (running) since 月 2024-01-08 14:42:03 JST; 38s ago
 Process: 1586 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
 Process: 1581 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 1589 (postgres)
 CGroup: /system.slice/postgresql.service
 tq1589 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
 tq1590 postgres: logger process
 tq1592 postgres: checkpointer process
 tq1593 postgres: writer process
 tq1594 postgres: wal writer process
 tq1595 postgres: autovacuum launcher process
 mq1596 postgres: stats collector process
 1月 08 14:42:02 localhost.localdomain systemd: Starting PostgreSQL database server...
 1月 08 14:42:03 localhost.localdomain systemd: Started PostgreSQL database server.
 [root@localhost ~]#

(5)プロセスも確認
 [root@localhost ~]# ps aux | grep postgres | grep -v grep
 postgres 1589 0.0 0.5 235280 9544 ? S 14:42 0:00 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
 postgres 1590 0.0 0.0 195028 1524 ? Ss 14:42 0:00 postgres: logger process
 postgres 1592 0.0 0.0 235280 1740 ? Ss 14:42 0:00 postgres: checkpointer process
 postgres 1593 0.0 0.0 235280 1748 ? Ss 14:42 0:00 postgres: writer process
 postgres 1594 0.0 0.0 235280 1512 ? Ss 14:42 0:00 postgres: wal writer process
 postgres 1595 0.0 0.1 236108 2860 ? Ss 14:42 0:00 postgres: autovacuum launcher process
 postgres 1596 0.0 0.0 195024 1660 ? Ss 14:42 0:00 postgres: stats collector process
 [root@localhost ~]#

PostgreSQLコマンドによる起動・停止

PostgreSQLのコマンドは、postgresユーザで実行する必要があり(rootだと失敗する)、「pg_xxx」の形式の名前です。起動や停止には「pg_ctl」を使います。

※rootで実行するとこんな感じで失敗する。
[root@localhost ~]# pg_ctl start
pg_ctl: rootでは実行できません
サーバプロセスの所有者となる(非特権)ユーザとして(例えば"su"を使用して)
ログインしてください。
[root@localhost ~]#

事前確認

(1)postgresユーザであることを確認
-bash-4.2$ whoami
postgres
-bash-4.2$

(2)稼働確認(停止していること)
-bash-4.2$ pg_ctl status
pg_ctl: サーバが動作していません
-bash-4.2$

起動・停止・再起動

(3)起動
-bash-4.2$ pg_ctl start
サーバは起動中です。
-bash-4.2$

※停止の場合
-bash-4.2$ pg_ctl stop
サーバ停止処理の完了を待っています....完了
サーバは停止しました
-bash-4.2$

※再起動の場合
-bash-4.2$ pg_ctl restart
サーバ停止処理の完了を待っています....完了
サーバは停止しました
サーバは起動中です。
-bash-4.2$

事後確認

(4)稼働確認(起動していること)
-bash-4.2$ pg_ctl status
pg_ctl: サーバが動作中です(PID: 3182)
/usr/bin/postgres
-bash-4.2$

自動起動の設定

OSを再起動したタイミングでいちいち起動するの面倒なので、PostgreSQLが自動で起動されるように自動起動設定をオンにしましょう。

起動し忘れることもあると思いますし、他の人がOS再起動した場合はそんなこと気にしていない可能性もありますからね~。

(1)自動起動の状態を確認
[root@localhost ~]# systemctl is-enabled postgresql
disabled
[root@localhost ~]#

(2)自動起動をオンにする
[root@localhost ~]# systemctl enable postgresql
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /usr/lib/systemd/system/postgresql.service.
[root@localhost ~]#

(3)自動起動の状態を確認
[root@localhost ~]# systemctl is-enabled postgresql
enabled
[root@localhost ~]#

※自動起動をオフにする場合
[root@localhost ~]# systemctl disable postgresql
Removed symlink /etc/systemd/system/multi-user.target.wants/postgresql.service.
[root@localhost ~]#

まとめ

今回は、OSのコマンドとPostgreSQLコマンドによるPostgreSQLの起動・停止方法をご紹介しました。

では今回はこの辺で。バイバーイ♪