Using PostgreSQL Streaming Replication
  • 13 Aug 2023
  • 2 Minutes to read
  • Dark
    Light
  • PDF

Using PostgreSQL Streaming Replication

  • Dark
    Light
  • PDF

Article Summary

Streaming replication enables the continuous streaming and replication of WAL segments from the WAL directory and archived WAL segments from a primary database server to a secondary database server.

The following diagram illustrates streaming replication with continuous archiving and point-in-time recovery:
image.png

Note

Syncing archived WAL segments is done only on the first setup of the replica.

This process is complementary to configuring continuous archiving. It protects against failures occurring on the primary database server, by streaming the WAL directory and synchronizing the database's archived WAL logs to a secondary database server.

Note

You can also configure the replication so that the archive pool is on the passive, secondary, database and not the active database server with point-in-time recovery on the secondary.
image.png

Configuring PostgreSQL Streaming Replication

The secondary server continuously streams the primary server’s WAL segments, and synchronizes the primary database server’s archived WAL segments every 10 minutes. Streaming replication traffic runs on TCP port 5432, which means you must open these ports for communication between the primary and secondary database servers. The secondary CTERA database server acts as a standby/passive server and cannot be used for load balancing purposes.

Notes

The allocated disk space for the PostgreSQL archive pool must be at least twice the size of the storage space allocated for the CTERA Portal data pool, as described in Calculating the Minimum Space Required for the Database Backup.

The locations of the streaming and archived WAL segments are $pgdatadir/pg_wal and $DBarchive respectively.

To configure streaming replication:

  1. Using SSH, log in as root to your CTERA Portal secondary, replication, server.
  2. Do one of the following:
    • If the secondary, replication, server has not been initialized, browse to the server's IP address or public DNS.
    • If the secondary, replication, server has been initialized but without replication, and you want to set it up as a replication server, open an SSH session to the CTERA Portal secondary, replication, server, by running the following command: portal-manage.sh resetdb
      Warning

      You must not run portal-manage.sh resetdb on the primary database server as this will delete all the data from the database.

    The Setup wizard opens, displaying the Select Server operation mode window.
  3. Set the server as a replication of the primary database server.
    Note

    After completing the setup wizard on an already initialized server, a new server entry is created representing the newly configured server. This makes the old server entry obsolete. You can remove the obsolete server entry by doing the following:

    1. Log in to the CTERA Portal as a global administrator.
    2. In Main > Servers locate the obsolete server entry, displayed as Not Connected.
    3. Select the server and click Delete.
  4. Log in as root to the CTERA Portal replication server instead of the primary database server.

Was this article helpful?

ESC

Eddy, a super-smart generative AI, opening up ways to have tailored queries and responses