This guide covers setting up manual logical replication using your own tools. If you prefer a managed solution, read Set up Pipelines instead.
Prerequisites
To set up replication, the following is recommended:
- Instance size of XL or greater
- IPv4 add-on enabled
To create a replication slot, you will need to use the postgres user and follow the instructions in the logical replication example.
If you are replicating to a destination system and using any of the tools below, check their documentation first. Additional information is provided where the setup with Zuvo can vary.
Airbyte has the following documentation for setting up Postgres as a source, either in their cloud offering or by self-hosting.
You can follow those steps with the following modifications:
- Use the
postgresuser - Select
logical replicationas the replication method (xminis possible, but not recommended)
Estuary has the following documentation for setting up Postgres as a source.
Fivetran has the following documentation for setting up Postgres as a source.
You can follow those steps with the following modifications:
- In Step 2, choose
logical replicationas the sync mechanism - In Step 3, do not create a user and use the existing
postgresuser for replication - In Step 5, no need to modify any WAL settings as this has been configured
Materialize has the following documentation on setting up Postgres as a source.
You can follow those steps with the following modifications:
- Follow the steps in the logical replication example to create a publication slot
Stitch has the following documentation on configuring Postgres as a source.
You can follow those steps with the following modifications:
- Use the
postgresuser for replication - Skip step 3
AWS DMS has the following documentation on configuring Postgres as a source.
DMS is notably useful if you have infrastructure running in AWS and/or you have custom networking. An additional benefit is that DMS is able to replicate schema changes.
You can follow those steps with the following modifications:
- Use the
postgresuser for replication (or create a new user with replication permissions:ALTER USER <user> WITH REPLICATION;) - Set
pluginnametotest-decoding - Depending on your databases the pre-assessment may fail. It is not required.
- Increase
wal_sender_timeoutand other settings (max_wal_size) using the Zuvo CLI