but to abort the dump.
</para>
<para>
- For a consistent backup, the database server needs to support synchronized snapshots,
- a feature that was introduced in <productname>PostgreSQL</productname> 9.2. With this
- feature, database clients can ensure they see the same data set even though they use
- different connections. <command>pg_dump -j</command> uses multiple database
- connections; it connects to the database once with the master process and
- once again for each worker job. Without the synchronized snapshot feature, the
- different worker jobs wouldn't be guaranteed to see the same data in each connection,
- which could lead to an inconsistent backup.
+ For a consistent backup, the database server needs to support
+ synchronized snapshots, a feature that was introduced in
+ <productname>PostgreSQL</productname> 9.2 for primary servers and 10
+ for standbys. With this feature, database clients can ensure they see
+ the same data set even though they use different connections.
+ <command>pg_dump -j</command> uses multiple database connections; it
+ connects to the database once with the master process and once again
+ for each worker job. Without the synchronized snapshot feature, the
+ different worker jobs wouldn't be guaranteed to see the same data in
+ each connection, which could lead to an inconsistent backup.
</para>
<para>
If you want to run a parallel dump of a pre-9.2 server, you need to make sure that the
AH->remoteVersion >= 90200 &&
!dopt->no_synchronized_snapshots)
{
- if (AH->isStandby)
+ if (AH->isStandby && AH->remoteVersion < 100000)
exit_horribly(NULL,
- "Synchronized snapshots are not supported on standby servers.\n"
+ "Synchronized snapshots on standby servers are not supported by this server version.\n"
"Run with --no-synchronized-snapshots instead if you do not need\n"
"synchronized snapshots.\n");