Bird
Raised Fist0
PostgreSQLquery~5 mins

Logical replication basics in PostgreSQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is logical replication in PostgreSQL?
Logical replication is a method to copy data changes from one database to another in real-time, using a publish-subscribe model. It replicates data at the level of individual changes (like insert, update, delete) rather than copying entire files.
Click to reveal answer
beginner
What are the main components involved in logical replication?
The main components are:
1. Publisher: The source database that sends data changes.
2. Subscriber: The target database that receives and applies changes.
3. Publication: Defines which tables and changes to send.
4. Subscription: Defines which publications to receive.
Click to reveal answer
beginner
How do you create a publication for logical replication?
Use the SQL command:
CREATE PUBLICATION my_pub FOR TABLE table_name;
This tells PostgreSQL to publish changes for the specified table.
Click to reveal answer
beginner
How do you create a subscription to receive changes?
Use the SQL command:
CREATE SUBSCRIPTION my_sub CONNECTION 'conninfo' PUBLICATION my_pub;
This connects to the publisher and starts receiving changes.
Click to reveal answer
beginner
Can logical replication replicate schema changes automatically?
No, logical replication only replicates data changes (inserts, updates, deletes). Schema changes like adding or dropping columns must be done manually on both publisher and subscriber.
Click to reveal answer
Which component in logical replication sends data changes?
APublisher
BSubscriber
CSubscription
DPublication
What SQL command creates a publication for a table named 'orders'?
ACREATE SUBSCRIPTION orders_sub FOR TABLE orders;
BCREATE SUBSCRIPTION orders_pub FOR TABLE orders;
CCREATE PUBLICATION orders_sub FOR TABLE orders;
DCREATE PUBLICATION orders_pub FOR TABLE orders;
Does logical replication copy entire database files?
AYes, it copies all files.
BNo, it copies only data changes.
CYes, but only schema files.
DNo, it copies only schema changes.
Which command connects a subscriber to a publication?
ACREATE PUBLICATION
BALTER SUBSCRIPTION
CCREATE SUBSCRIPTION
DDROP SUBSCRIPTION
Are schema changes replicated automatically in logical replication?
ANo, never.
BYes, always.
COnly if enabled explicitly.
DOnly for certain data types.
Explain the roles of publisher and subscriber in logical replication.
Think about who sends and who receives data.
You got /3 concepts.
    Describe how to set up logical replication between two PostgreSQL databases.
    Focus on the SQL commands and their purpose.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of logical replication in PostgreSQL?
      easy
      A. To copy data changes from specific tables between databases
      B. To create a full backup of the database
      C. To optimize query performance
      D. To encrypt data during transfer

      Solution

      1. Step 1: Understand logical replication concept

        Logical replication copies only data changes from selected tables, not the entire database.
      2. Step 2: Compare options with concept

        Encrypting data during transfer, creating a full backup of the database, and optimizing query performance are unrelated to logical replication.
      3. Final Answer:

        To copy data changes from specific tables between databases -> Option A
      4. Quick Check:

        Logical replication = Copy data changes [OK]
      Hint: Logical replication copies changes, not full backups [OK]
      Common Mistakes:
      • Confusing logical replication with physical backup
      • Thinking it copies entire database
      • Assuming it improves query speed
      2. Which SQL command is used to create a publication for logical replication?
      easy
      A. CREATE REPLICATION SLOT myslot LOGICAL;
      B. CREATE SUBSCRIPTION mysub CONNECTION 'conninfo' PUBLICATION mypub;
      C. CREATE PUBLICATION mypub FOR ALL TABLES;
      D. CREATE DATABASE mydb WITH REPLICATION;

      Solution

      1. Step 1: Identify command for publication creation

        The command to create a publication is CREATE PUBLICATION followed by publication name and tables.
      2. Step 2: Analyze options

        Only CREATE PUBLICATION mypub FOR ALL TABLES; creates a publication. CREATE SUBSCRIPTION mysub CONNECTION 'conninfo' PUBLICATION mypub; creates a subscription, CREATE REPLICATION SLOT myslot LOGICAL; creates a replication slot, and CREATE DATABASE mydb WITH REPLICATION; creates a database.
      3. Final Answer:

        CREATE PUBLICATION mypub FOR ALL TABLES; -> Option C
      4. Quick Check:

        Publication creation = CREATE PUBLICATION [OK]
      Hint: Publication uses CREATE PUBLICATION, subscription uses CREATE SUBSCRIPTION [OK]
      Common Mistakes:
      • Mixing publication and subscription commands
      • Using replication slot command for publication
      • Confusing database creation with replication setup
      3. Given the following commands on the publisher:
      CREATE PUBLICATION mypub FOR TABLE customers;
      And on the subscriber:
      CREATE SUBSCRIPTION mysub CONNECTION 'host=source dbname=mydb user=replicator password=secret' PUBLICATION mypub;
      What will happen when a new row is inserted into the customers table on the publisher?
      medium
      A. The new row will be replicated to the subscriber's customers table
      B. The new row will not be replicated because subscription is missing
      C. The entire customers table will be copied again
      D. An error will occur because publications cannot replicate inserts

      Solution

      1. Step 1: Understand publication and subscription setup

        The publication includes the customers table, and the subscription connects to it, enabling replication of changes.
      2. Step 2: Analyze effect of insert on replication

        Inserts on the published table are sent to the subscriber, so the new row will appear there.
      3. Final Answer:

        The new row will be replicated to the subscriber's customers table -> Option A
      4. Quick Check:

        Insert on published table = replicated row [OK]
      Hint: Inserts on published tables replicate if subscription exists [OK]
      Common Mistakes:
      • Thinking subscription is missing when it is created
      • Assuming full table copy on each insert
      • Believing inserts are not replicated
      4. You created a subscription but notice no data is replicating. Which of the following is a likely cause?
      medium
      A. Logical replication does not support inserts
      B. The subscriber database is offline
      C. You forgot to create a replication slot on the subscriber
      D. The publication does not include the tables you want to replicate

      Solution

      1. Step 1: Check publication includes tables

        If the publication does not include the desired tables, no changes will be sent to the subscriber.
      2. Step 2: Evaluate other options

        The subscriber database is offline is unlikely because subscription requires the subscriber to be online. Logical replication does not support inserts is false; inserts are supported. You forgot to create a replication slot on the subscriber is incorrect because replication slots are created on the publisher, not subscriber.
      3. Final Answer:

        The publication does not include the tables you want to replicate -> Option D
      4. Quick Check:

        Missing tables in publication = no replication [OK]
      Hint: Ensure publication includes tables to replicate [OK]
      Common Mistakes:
      • Confusing replication slot location
      • Assuming inserts are unsupported
      • Ignoring publication table list
      5. You want to replicate only changes from the orders table but exclude the order_logs table, which is large and not needed on the subscriber. How should you set up the publication?
      hard
      A. CREATE PUBLICATION mypub FOR TABLE orders, order_logs;
      B. CREATE PUBLICATION mypub FOR TABLE orders;
      C. CREATE PUBLICATION mypub FOR ALL TABLES;
      D. CREATE PUBLICATION mypub FOR TABLE order_logs;

      Solution

      1. Step 1: Understand selective table replication

        To replicate only the orders table, the publication must include only that table.
      2. Step 2: Analyze options for correct table inclusion

        CREATE PUBLICATION mypub FOR ALL TABLES; replicates all tables, including order_logs which is unwanted. CREATE PUBLICATION mypub FOR TABLE orders, order_logs; includes both tables. CREATE PUBLICATION mypub FOR TABLE order_logs; includes only order_logs, which is unwanted.
      3. Final Answer:

        CREATE PUBLICATION mypub FOR TABLE orders; -> Option B
      4. Quick Check:

        Include only needed tables in publication [OK]
      Hint: List only needed tables in publication to exclude others [OK]
      Common Mistakes:
      • Using FOR ALL TABLES when exclusion is needed
      • Including unwanted tables in publication
      • Confusing publication and subscription roles