コンテナ猫小屋
291 文字
1 分
PostgreSQLのバージョンアップデート ver. RHEL系
2025-12-18

PostgreSQLのバージョンを17→18にしたので備忘録。

環境#

  • OS: Fedora 42
  • PostgreSQL: 17 → 18

前提#

PostgreSQLを利用しているdaemonがあったら止めておくこと。

手順#

sudo dnf update -y

sudo dnf install -y postgresql18 postgresql18-server postgresql18-contrib

sudo -iu postgres pg_dump -Fc -Z 9 database | sudo tee /var/backup.dump > /dev/null

sudo systemctl stop postgresql-17

sudo su - postgres 

/usr/pgsql-18/bin/initdb

exit

sudo systemctl start postgresql-18 # 確認用

sudo systemctl stop postgresql-18

sudo su - postgres

/usr/pgsql-17/bin/pg_checksums --enable -D /var/lib/pgsql/17/data # 17→18だと必須?

/usr/pgsql-18/bin/pg_upgrade -b /usr/pgsql-17/bin -B /usr/pgsql-18/bin -d /var/lib/pgsql/17/data -D /var/lib/pgsql/18/data --check # upgrade前のチェック

/usr/pgsql-18/bin/pg_upgrade -b /usr/pgsql-17/bin -B /usr/pgsql-18/bin -d /var/lib/pgsql/17/data -D /var/lib/pgsql/18/data 

exit

sudo systemctl start postgresql-18

sudo su - postgres

/usr/pgsql-18/bin/vacuumdb --all --analyze-in-stages --missing-stats-only

exit

sudo systemctl enable postgresql-18
sudo systemctl disable postgresql-17
sudo systemctl start postgresql-18
sudo systemctl status postgresql-18
sudo systemctl daemon-reload

備考#

  • pg_dump-Z 9をつけると圧縮率高くなって速度も上がっていい感じだった。
  • /usr/pgsql-17/bin/pg_checksums --enable -D /var/lib/pgsql/17/dataは17→18のアップグレード時に必要っぽい?私はchecksum有効じゃないと怒られが発生した。

おまけ#

これを書いていた日は水道管が壊れてお風呂に入ろうとしたら水が真っ黒、お気に入りのセーターも洗濯したら汚れたしでついてなかった。

PostgreSQLのバージョンアップデート ver. RHEL系
https://blog.esurio1673.net/posts/pg-update-2/
作者
仮想猫
公開日
2025-12-18
ライセンス
CC BY-NC-SA 4.0