By default, Edge installs all Postgres nodes in primary mode. However, in production systems with multiple Postgres nodes, you configure them to use primary-standby replication so that if the primary node fails, the standby node can continue to serve traffic.
If the primary node ever fails, you can promote the standby server to the primary. See Handling a PostgresSQL Database Failover for more information.
Configure Primary-Standby Replication at install time
You can configure primary-standby replication at install time by including the following properties in the config file for the two Postgres nodes:
The installer automatically configures the two Postgres node to function as primary-standby with replication.
Configure Primary-Standby Replication after installation
You can configure primary-standby replication after installation by using the following procedure:
- Identify which Postgre node will be the primary and which will be the standby server.
- On the primary node, edit the config file to set:
- Enable replication on the new primary:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- On the standby node, edit the config file to set:
- Stop the standby node:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
- On the standby node, delete any existing Postgres data:
rm -rf /opt/apigee/data/apigee-postgresql/
- Configure the standby node:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
Test Primary-Standby Replication
On completion of replication, verify the replication status by issuing the following scripts on both servers. The system should display identical results on both servers to ensure a successful replication:
- On the primary node, run:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
Validate that it says it is the primary.
- On the standby node:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
Validate that it says it is the standby.