Every output plugin has access to each individual new row produced
by INSERT and the new row version created
by UPDATE. Availability of old row versions for
- UPDATE and delete DELETE depends on
+ UPDATE and DELETE depends on
the configured
REPLICA
IDENTITY.
Before you can use logical decoding, you must set
- to logical and
+ to logical and
to at least 1.
Then, you should connect to the target database (in the example
below, postgres) as a superuser.
another connection.
-# pg_recvlogical -d testdb --slot test --create
-# pg_recvlogical -d testdb --slot test --start -f -
+# pg_recvlogical -d postgres --slot test --create
+# pg_recvlogical -d postgres --slot test --start -f -
CTRL-Z
-# psql -c "INSERT INTO data(data) VALUES('4');"
+# psql -d postgres -c "INSERT INTO data(data) VALUES('4');"
# fg
BEGIN 693
table public.data: INSERT: id[integer]:4 data[text]:'4'
COMMIT 693
CTRL-C
-# pg_recvlogical -d testdb --slot test --drop
+# pg_recvlogical -d postgres --slot test --drop
in the stream).
-
PostgreSQL also has streaming replication slots
+
PostgreSQL also has streaming replication slots
(see ), but they are used somewhat
differently there.
Streaming Replication Protocol Interface
- The CREATE_REPLICATION_SLOT SLOT slotname LOGICAL
- options, DROP_REPLICATION_SLOT SLOT slotname
+ The CREATE_REPLICATION_SLOT slotname LOGICAL
+ options, DROP_REPLICATION_SLOT slotname
and START_REPLICATION SLOT slotname LOGICAL options
commands can be used to create, drop and stream changes from a replication
slot respectively. These commands are only available over a replication
printf(_(" -F --fsync-interval=INTERVAL\n"
" frequency of syncs to the output file (in seconds, defaults to 10)\n"));
printf(_(" -o, --option=NAME[=VALUE]\n"
- " Specify option NAME with optional value VAL, to be passed\n"
+ " Specify option NAME with optional value VALUE, to be passed\n"
" to the output plugin\n"));
printf(_(" -P, --plugin=PLUGIN use output plugin PLUGIN (defaults to test_decoding)\n"));
printf(_(" -s, --status-interval=INTERVAL\n"