こんにちは、やすです。
今回は、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の起動・停止方法をご紹介しました。
では今回はこの辺で。バイバーイ♪