On Sun, Jan 22, 2017 at 6:57 AM, Stephen Frost <sfr...@snowman.net> wrote:
> Greetings, > > * julyanto SUTANDANG (julya...@equnix.co.id) wrote: > > CORRECTION: > > > > "you might you pg_start_backup to tell the server not to write into the > > DATADIR" > > > > become > > > > "you might *use* pg_start_backup to tell the server not to write into the > > *BASEDIR*, actually server still writes but only to XLOGDIR " > > Just to make sure anyone reading the mailing list archives isn't > confused, running pg_start_backup does *not* make PG stop writing to > BASEDIR (or DATADIR, or anything, really). PG *will* continue to write > data into BASEDIR after pg_start_backup has been called. > Correct. Unfortunately it is a very common myth that it does cause PostgreSQL to stop writing to the base dir. > > The only thing that pg_start_backup does is identify an entry in the WAL > stream, from which point all WAL must be replayed when restoring the > backup. All WAL generated from that point (pg_start_backup point) until > the pg_stop_backup point *must* be replayed when restoring the backup or > the database will not be consistent. > pg_start_backup also forces full_page_writes to be effectively 'on' for the duration of the backup, if it is not already explicitly on (which it usually will already be). This affects pg_xlog, of course, not base. But it is an essential step for people who run with full_page_writes=off, as it ensures that anything in base which got changed mid-copy will be fixed up during replay of the WAL. Cheers, Jeff