From 536f410111fc9b4a9e052ac53826f479acfca2f5 Mon Sep 17 00:00:00 2001 From: Amit Kapila Date: Fri, 13 Oct 2023 12:13:46 +0530 Subject: [PATCH] Doc: Add more links in logical replication pages. The logical replication pages in the docs mostly have links to corresponding pub/sub commands whenever they are mentioned, but there were some omissions. This patch adds the missing links. Author: Peter Smith Reviewed-by: Vignesh C, Amit Kapila Discussion: https://www.postgresql.org/message-id/flat/CAHut%2BPu2S4RdzYKR7H5_E7QYWyq5hB0hL4EFrYbP91Qso62jeg%40mail.gmail.com --- doc/src/sgml/logical-replication.sgml | 20 +++++++++++++------- doc/src/sgml/ref/alter_publication.sgml | 3 ++- doc/src/sgml/ref/alter_subscription.sgml | 23 ++++++++++++----------- doc/src/sgml/ref/drop_subscription.sgml | 8 +++++--- 4 files changed, 32 insertions(+), 22 deletions(-) diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml index 3b2fa1129e..8c3837e89b 100644 --- a/doc/src/sgml/logical-replication.sgml +++ b/doc/src/sgml/logical-replication.sgml @@ -274,9 +274,11 @@ Normally, the remote replication slot is created automatically when the - subscription is created using CREATE SUBSCRIPTION and it + subscription is created using + CREATE SUBSCRIPTION and it is dropped automatically when the subscription is dropped using - DROP SUBSCRIPTION. In some situations, however, it can + DROP SUBSCRIPTION. + In some situations, however, it can be useful or necessary to manipulate the subscription and the underlying replication slot separately. Here are some scenarios: @@ -306,8 +308,9 @@ When dropping a subscription, the replication slot should be kept. This could be useful when the subscriber database is being moved to a different host and will be activated from there. In that case, - disassociate the slot from the subscription using ALTER - SUBSCRIPTION before attempting to drop the subscription. + disassociate the slot from the subscription using + ALTER SUBSCRIPTION + before attempting to drop the subscription. @@ -1349,7 +1352,8 @@ test_sub=# SELECT * FROM child ORDER BY a; If a subscription is affected by this problem, the only way to resume replication is to adjust one of the column lists on the publication side so that they all match; and then either recreate the subscription, - or use ALTER SUBSCRIPTION ... DROP PUBLICATION to + or use + ALTER SUBSCRIPTION ... DROP PUBLICATION to remove one of the offending publications and add it again. @@ -1504,13 +1508,15 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER the replication origin name can be found from the server log (LSN 0/14C0378 and replication origin pg_16395 in the above case). The transaction that produced the conflict can be skipped by using - ALTER SUBSCRIPTION ... SKIP with the finish LSN + ALTER SUBSCRIPTION ... SKIP + with the finish LSN (i.e., LSN 0/14C0378). The finish LSN could be an LSN at which the transaction is committed or prepared on the publisher. Alternatively, the transaction can also be skipped by calling the pg_replication_origin_advance() function. Before using this function, the subscription needs to be disabled temporarily - either by ALTER SUBSCRIPTION ... DISABLE or, the + either by + ALTER SUBSCRIPTION ... DISABLE or, the subscription can be used with the disable_on_error option. Then, you can use pg_replication_origin_advance() diff --git a/doc/src/sgml/ref/alter_publication.sgml b/doc/src/sgml/ref/alter_publication.sgml index c8424bca15..74fda82ed0 100644 --- a/doc/src/sgml/ref/alter_publication.sgml +++ b/doc/src/sgml/ref/alter_publication.sgml @@ -51,7 +51,8 @@ ALTER PUBLICATION name RENAME TO ADD and DROP clauses will add and remove one or more tables/schemas from the publication. Note that adding tables/schemas to a publication that is already subscribed to will require an - ALTER SUBSCRIPTION ... REFRESH PUBLICATION action on the + + ALTER SUBSCRIPTION ... REFRESH PUBLICATION action on the subscribing side in order to become effective. Note also that DROP TABLES IN SCHEMA will not drop any schema tables that were specified using diff --git a/doc/src/sgml/ref/alter_subscription.sgml b/doc/src/sgml/ref/alter_subscription.sgml index a85e04e4d6..ba70855530 100644 --- a/doc/src/sgml/ref/alter_subscription.sgml +++ b/doc/src/sgml/ref/alter_subscription.sgml @@ -85,7 +85,7 @@ ALTER SUBSCRIPTION name RENAME TO < Parameters - + name @@ -94,7 +94,7 @@ ALTER SUBSCRIPTION name RENAME TO < - + CONNECTION 'conninfo' @@ -105,7 +105,7 @@ ALTER SUBSCRIPTION name RENAME TO < - + SET PUBLICATION publication_name ADD PUBLICATION publication_name DROP PUBLICATION publication_name @@ -147,13 +147,14 @@ ALTER SUBSCRIPTION name RENAME TO < - + REFRESH PUBLICATION Fetch missing table information from publisher. This will start replication of tables that were added to the subscribed-to publications - since CREATE SUBSCRIPTION or + since + CREATE SUBSCRIPTION or the last invocation of REFRESH PUBLICATION. @@ -192,7 +193,7 @@ ALTER SUBSCRIPTION name RENAME TO < - + ENABLE @@ -202,7 +203,7 @@ ALTER SUBSCRIPTION name RENAME TO < - + DISABLE @@ -212,7 +213,7 @@ ALTER SUBSCRIPTION name RENAME TO < - + SET ( subscription_parameter [= value] [, ... ] ) @@ -232,7 +233,7 @@ ALTER SUBSCRIPTION name RENAME TO < - + SKIP ( skip_option = value ) @@ -272,7 +273,7 @@ ALTER SUBSCRIPTION name RENAME TO < - + new_owner @@ -281,7 +282,7 @@ ALTER SUBSCRIPTION name RENAME TO < - + new_name diff --git a/doc/src/sgml/ref/drop_subscription.sgml b/doc/src/sgml/ref/drop_subscription.sgml index 2a67bdea91..d4f54c7170 100644 --- a/doc/src/sgml/ref/drop_subscription.sgml +++ b/doc/src/sgml/ref/drop_subscription.sgml @@ -40,7 +40,7 @@ DROP SUBSCRIPTION [ IF EXISTS ] name DROP SUBSCRIPTION cannot be executed inside a transaction block if the subscription is associated with a replication - slot. (You can use ALTER SUBSCRIPTION to unset the + slot. (You can use ALTER SUBSCRIPTION to unset the slot.) @@ -87,9 +87,11 @@ DROP SUBSCRIPTION [ IF EXISTS ] nameDROP SUBSCRIPTION command will fail. To proceed in this situation, first disable the subscription by executing - ALTER SUBSCRIPTION ... DISABLE, and then disassociate + + ALTER SUBSCRIPTION ... DISABLE, and then disassociate it from the replication slot by executing - ALTER SUBSCRIPTION ... SET (slot_name = NONE). + + ALTER SUBSCRIPTION ... SET (slot_name = NONE). After that, DROP SUBSCRIPTION will no longer attempt any actions on a remote host. Note that if the remote replication slot still exists, it (and any related table synchronization slots) should then be