@oldsysops À $job-1 j’ai beaucoup utilisé le -k aussi pour des bases multi-tera… ⚠️, il faut bien tester les backups avant parce que c’est plus définitif ! (Mais avec un barman au petits oignons, pas de soucis) 😉.
En préparant bien, j’ai du faire moins de 10mn de downtime pour une base de 5To 🤔
https://www.postgresql.org/docs/current/pgupgrade.html#:~:text=k%2D%2Dlink
@oldsysops J’ai retrouvé un bout de journal de bord pour une db d’à priori 450 Go :
sudo -i -u postgres /usr/pgsql-12/bin/initdb -D /data01/PG12/PROD_5432/ --locale="fr_FR.UTF-8"
(date && time sudo -iu postgres /usr/pgsql-12/bin/pg_upgrade -b /usr/pgsql-9.6/bin/ -B /usr/pgsql-12/bin/ -d /data01/PG96/PROD_5432/ -D /data01/PG12/PROD_5432/ -j 16 -v -k 2>&1 | ts) | tee /tmp/upgrade.log
⇒ 12s
Repack ⇒ 278m (4h38)
En gros, la proc, c’était :
pg_repack (vacuum full, mais online ♥️)
backup barman
coupure des fronts
backup barman (diff)
pg_upgrade « inplace »
réouverture
pg_repack (uniquement reindex pas besoin de toucher aux fichiers data)