pg_ctlclusterコマンド
pg_ctlclusterコマンドとは?
- PostgreSQLクラスタの起動制御するためのコマンドで、複数バージョンのPostgreSQLを同時起動などできる
- pg_ctlコマンドのラッパー
- PGDGがDebian系Linuxに配布するパッケージに含まれる
- 環境によってpg_ctlclusterコマンドはインストールされてないこともあるが、インストールされている環境では原則としてpg_ctlや/etc/init.d/postgresqlなどよりpg_ctlclusterを優先して使う
起動状況の確認 - pg_lsclusters
$ sudo pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.5 main 5433 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
11 main 5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
- バージョン9.5がポート5433で起動中、またバージョン11がポート5432で起動中
psqlのバージョン確認
$ psql --version
psql (PostgreSQL) 12.4 (Debian 12.4-1.pgdg90+1)
- 古いバージョンのpsqlで新しいバージョンのPostgreSQLサーバへ接続するとエラーになることがあるので注意
PostgreSQLサーバの起動・停止
$ sudo pg_ctlcluster 12 main start
$ sudo pg_ctlcluster 9.5 main stop
PostgreSQLサーバのリッスンポートなど設定変更
vi /etc/postgresql/11/main/postgresql.conf
vi /etc/postgresql/9.6/main/postgresql.conf
参考