The following bug has been logged on the website:
Bug reference: 13448
Logged by: digoal
Email address: digoal@126.com
PostgreSQL version: Unsupported/Unknown
Operating system: CentOS 6.x x64
Description:
PostgreSQL 9.5 release notes:
E.1.3.9.2. pg_dump
Allow pg_dump to share a snapshot taken by another session using --snapshot
(Simon Riggs, Michael Paquier)
The remote snapshot must have been exported by pg_export_snapshot() or been
defined when creating a logical replication slot. This can be used by
parallel pg_dump to use a consistent snapshot across pg_dump processes.
There is no problem, But how to use a logical replication slot's snapshot?
Now we must do it manual?
Like this:
pg95@db-172-16-3-150-> psql 'hostaddr=127.0.0.1 port=1922 user=postgres
dbname=postgres replication=database'
psql (9.5devel)
Type "help" for help.
postgres=# CREATE_REPLICATION_SLOT ab12 LOGICAL
"/opt/pgsql9.5/lib/test_decoding.so";
slot_name | consistent_point | snapshot_name | output_plugin
-----------+------------------+---------------+------------------------------------
ab12 | 7/77B59A00 | 00000736-1 |
/opt/pgsql9.5/lib/test_decoding.so
(1 row)
pg95@db-172-16-3-150-> pg_dump --snapshot=00000736-1
And there is no document descript it.
Another command pg_recvlogical also can use stream replication protocol to
create slot,but it exit soon and no any snapshot info output to stdout, we
can use log_replication_commands to trace the snapshot, but we cann't use it
because pg_recvlogical exit soon.
I think , pg_recvlogical can add option --wait-dump | --wait second for
--create-slot, wait a moment or wait some body import the snapshot, then
close it or send the next replication commands.
Regards,
Digoal