I have been testing a master slave configuration of PostgreSQL 9.4.2 using
streaming replciation. The master is initialised with a blank database and
the slave is created with a pg_start_backup()/rsync/pg_stop_backup()
procedure. The slave connects to the master and works flawlessly. For
testing purposes backup is configured to run every 5 minutes from the
master on one location, and from the slave on an other location. The backup
procedure is done using pg_basebackup with the --xlog-method=stream to
fetch all WALs that are needed for the backup to be fully functional.
I left it running for a day. A few backups that were made from the slave
didn't contain any WAL files (only history files in complex cases when the
master had switched to a newer timeline).
Is it normal that pg_basebackup runs successfully (rc=0) and there is no
WAL files present?
The master and slave are sitting idle, after only a few transaction on the
master at the beginning of the day. I noted that all WAL switches are
caused by the backup running on the master. Is it possible the slave is in
a consistent state when it has applied all changes from the previous WAL
and the new WAL hasn't been created yet on the master (so actually no WAL-s
are needed to restore it to a consistent state)?
Regards,
Mladen Marinović