Re: use CREATE DATABASE STRATEGY = FILE_COPY in pg_upgrade
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: Dilip Kumar <dilipbalaut@gmail.com>, Ranier Vilela <ranier.vf@gmail.com>, pgsql-hackers@postgresql.org
Date: 2024-06-12T14:41:01Z
Lists: pgsql-hackers
On Tue, Jun 11, 2024 at 10:39:51AM +0200, Matthias van de Meent wrote: > On Tue, 11 Jun 2024 at 04:01, Nathan Bossart <nathandbossart@gmail.com> wrote: >> It looks like pg_dump always uses template0, so AFAICT we don't even need >> the suggested manual checkpoint after restoring template1. > > Thanks for reminding me. It seems I misunderstood the reason why we > first process template1 in create_new_objects, as I didn't read the > comments thoroughly enough. Actually, I think you are right that we need a manual checkpoint, except I think we need it to be after prepare_new_globals(). set_frozenxids() connects to each database (including template0) and updates a bunch of pg_class rows, and we probably want those on disk before we start copying the files to create all the user's databases. -- nathan
Commits
-
Use CREATE DATABASE ... STRATEGY = FILE_COPY in pg_upgrade.
- 64f34eb2e2ce 18.0 landed
-
Use TRUNCATE to preserve relfilenode for pg_largeobject + index.
- bbe08b8869bd 16.0 cited
-
initdb: When running CREATE DATABASE, use STRATEGY = WAL_COPY.
- ad43a413c4f7 15.0 cited