291 文字
1 分
PostgreSQLのバージョンアップデート ver. RHEL系
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/