バージョンアップ手法をバックアップ手段ごとに検証

pg_upgrade

pg_dumpall

ファイルシステムごとバックアップ

Docker上でのバージョンアップ

docker-postgres-upgrade

https://qiita.com/y-amadatsu/items/2d43ce49c77f1f1df434

物理ディレクトリに対してpg_upgradeを実行する。

docker run --rm -e PGUSER=sonar -e POSTGRES_INITDB_ARGS="-U $POSTGRES_USER" \
   -v /var/lib/docker/volumes/sonarqube_postgresql_data/_data:/var/lib/postgresql/9.6/data/ \
   -v /var/lib/docker/volumes/sonarqube_postgresql_data_13/_data:/var/lib/postgresql/13/data/ \
   tianon/postgres-upgrade:9.6-to-13

pg_dumpall/psql

https://betterprogramming.pub/how-to-upgrade-your-postgresql-version-using-docker-d1e81dbbbdf9

まとめると

  1. 旧コンテナーでdump
  2. 旧コンテナーのボリューム削除(切り戻し考えると残しても良い)
  3. 新コンテナ立ち上げ
  4. 新コンテナにdump流し込む

実際に検証した

# 旧DBからデータをdump
docker-compose exec db pg_dumpall -U sonar > dump.sql
# volume消してバージョンアップ実施

# 新サーバーでsonarのDBを消す(ある場合)
sonarqube止める。
psql -U sonar -d postgres
drop database sonar
CREATE DATABASE sonar WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE = 'en_US.utf8';
# 新サーバーにdumpを流し込む(docker-composeは使えない。DB削除と空のDB作成必要)
cat dump2.sql | docker exec -i コンテナID  psql -U sonar -d sonar

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS