]> granicus.if.org Git - postgresql/commitdiff
pg_dump: Support using synchronized snapshots on standbys
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 16 Aug 2017 23:46:50 +0000 (19:46 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 16 Aug 2017 23:46:50 +0000 (19:46 -0400)
This became possible by commit
6c2003f8a1bbc7c192a2e83ec51581c018aa162f.  This just makes pg_dump aware
of it and updates the documentation.

Author: Petr Jelinek <petr.jelinek@2ndquadrant.com>

doc/src/sgml/ref/pg_dump.sgml
src/bin/pg_dump/pg_dump.c

index ad5b6fc703587290840730e46e941d9b6b0ee9a1..7ccbee4855c057b3f665166386651daee7e1ea81 100644 (file)
@@ -337,14 +337,16 @@ PostgreSQL documentation
         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
index b6e66267ffc2e5a43c829d3535c674cf6307ea06..75f08cd7924a450c2ba6f58ed0558673337b3bc3 100644 (file)
@@ -1134,9 +1134,9 @@ setup_connection(Archive *AH, const char *dumpencoding,
                         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");