Requirement
Support Postgresql version
v10 - v14
Both servers should be running the same version.
Network connectivity
The servers need to be on the same network and have consistent network connectivity.
Ensure that the primary server has the correct pg_hba.conf settings.
CSD for streaming Mode
Trigger CSD in streaming mode
Create Replication Slot on Primary
Run the following SQL query on the primary server to create a physical replication slot named SLOT_NAME
SELECT * FROM pg_create_physical_replication_slot(SLOT_NAME, false, false) WHERE NOT EXISTS (SELECT * FROM pg_replication_slots WHERE slot_name = SLOT_NAME)
Tar PostgreSQL Config Files on Primary:
postgres.conf
pg_ident.conf
pg_hba.conf
Transfer Config Files to Standby
Transfer the tarball containing PostgreSQL config files from the primary server to the standby server
Data Directory Setup Using pg_basebackup
Initiate a streaming backup from the standby server to the primary server. This process retrieves all files from the primary server's data directory and includes the previously established replication slot on step 2/opt/rh/rh-postgresql13/root/usr/bin/pg_basebackup -D /var/lib/pgsql/data/13/main -F plain -X stream -S dbvisit_2 -R --progress --verbose --checkpoint=fast -d postgres://postgres@postgresqlcentos1:5432
Config Directory Setup
Extract files from tar ball recieved on step 4 and place them in the target configuration directory on the standby server
Configure the PostgreSQL instance on the standby server for streaming replication based on the CSD parameter and the replication slot created earlier
If the operating system is Windows, register a Windows service for the PostgreSQL cluster
Restart Standby Server
After setting up data director and config directory, restart standby server
Applying Configuration Changes
Applying the latest changes on configuration coming CSD and persisting configuration data on Control Center
CSD for archive Mode
Trigger CSD in archive mode
Create Base Backup Files
Generate the essential base backup files using the following command:
/opt/rh/rh-postgresql13/root/usr/bin/pg_basebackup -D tempBackupDir -F tar -X stream -R --progress --verbose
The aforementioned command will generate the subsequent files, which are to be transferred to the Standby in order to facilitate the cluster restoration process.
base.tar: postgresql base files, including setting and etc
pg_wal.tar: wal data files for standby to restore
tblspc_xxxxx.tar: customized table space files
backup_manifest: backup meta data, is used for
pg_verifybackup
to verify the backup
Tar the following PostgreSQL configuration files on the primary server
postgres.conf
pg_ident.conf
pg_hba.conf
Transfer Backup Files from Primary to Standby, which are generated on step 3 and step 2.b
Data directory setup
On the Standby, receive and extract all files generated from Step 2.b and Step 3. Place these files in the designated data folder, previously allocated before initiating CSD.
Config directory setup
Extract the files from the tarball received in Step 4 and place them into the target configuration directory on the standby server.
Configure PostgreSQL in archive mode as per the CSD parameter
If the OS is windows, register windows service for the cluster
After configuring the data and config directories, restart the standby PostgreSQL server
Apply Configuration Changes from CSD
Applying the latest changes on configuration coming CSD and persisting configuration data on Control Center
CSD for Log shipping Mode
Trigger CSD in archive mode
Create Replication Slot on Primary
Run the following SQL query on the primary server to create a physical replication slot named SLOT_NAME
SELECT * FROM pg_create_physical_replication_slot(SLOT_NAME, false, false) WHERE NOT EXISTS (SELECT * FROM pg_replication_slots WHERE slot_name = SLOT_NAME)
Create Base Backup Files
Generate the essential base backup files using the following command
/opt/rh/rh-postgresql13/root/usr/bin/pg_basebackup -D tempBackupDir -F tar -X stream -R --progress --verbose -S slot_name
The aforementioned command will generate the subsequent files, which are to be transferred to the Standby in order to facilitate the cluster restoration process.
base.tar: postgresql base files, including setting and etc
pg_wal.tar: wal data files for standby to restore
tblspc_xxxxx.tar: customized table space files
backup_manifest: backup meta data, is used for
pg_verifybackup
to verify the backup
Note: Different archive mode base backups and log shipping backups also include the replication_slot within the base backup files and transfer it to the standby.
Tar the following PostgreSQL configuration files on the primary server
postgres.conf
pg_ident.conf
pg_hba.conf
Transfer Backup Files from Primary to Standby, which are generated on step 3 and step 2.b
Data directory setup
On the Standby, receive and extract all files generated from Step 2.b and Step 3. Place these files in the designated data folder, previously allocated before initiating CSD.
Config directory setup
Extract the files from the tarball received in Step 4 and place them into the target configuration directory on the standby server.
Configure PostgreSQL in archive mode as per the CSD parameter
If the OS is windows, register windows service for the cluster
After configuring the data and config directories, restart the standby PostgreSQL server
Apply Configuration Changes from CSD
Applying the latest changes on configuration coming CSD and persisting configuration data on Control Center