A)最初に、そのためのすべてのデータベースのバックアップを作成します(バックアップが必要ない場合は、Bから続行できます)
- postgresユーザーとしてログイン
sudo su postgres
- すべてのデータベースにあるすべてのデータのバックアップ.sqlファイルを作成します
pg_dumpall > backup.sql
B)PostgreSQL12にアップグレードする
- パッケージを更新してpostgres12をインストールする
sudo apt-get update
sudo apt-get install postgresql-12 postgresql-server-dev-12
- postgresqlサービスを停止します
sudo systemctl stop postgresql.service
- データを移行する
/usr/lib/postgresql/12/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/10/main \
--new-datadir=/var/lib/postgresql/12/main \
--old-bindir=/usr/lib/postgresql/10/bin \
--new-bindir=/usr/lib/postgresql/12/bin \
--old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'
- 通常のユーザーに切り替えます
exit
- 古いバージョンと新しいpostgresバージョンのポートを入れ替えます。
sudo vim /etc/postgresql/12/main/postgresql.conf
#change port to 5432
sudo vim /etc/postgresql/10/main/postgresql.conf
#change port to 5433
- postgresqlサービスを開始します
sudo systemctl start postgresql.service
- postgresユーザーとしてログイン
sudo su postgres
- 新しいpostgresバージョンを確認してください
psql -c "SELECT version();"
- 生成された新しいクラスタースクリプトを実行します
./analyze_new_cluster.sh
- 通常の(デフォルトユーザー)ユーザーとして戻り、古いバージョンの混乱をクリーンアップします
sudo apt-get remove postgresql-10 postgresql-server-dev-10
#uninstalls postgres packages
sudo rm -rf /etc/postgresql/10/
#removes the old postgresql directory
sudo su postgres
#login as postgres user
./delete_old_cluster.sh
#delete the old cluster data
- おめでとう!これでpostgresqlバージョンがアップグレードされました。Bですべてが正常に機能する場合は、データを古いバージョンから新しいバージョンにすでに移行しているため、バックアップを適用する必要はありません。何か問題が発生した場合に備えてバックアップを作成します。
注: 要件に応じてpostgresql.confとpg_hba.confを変更します
PS :問題、提案、または提案したいその他の変更について、お気軽にコメントしてください