High availability and read replicas

Keep Plexivo Postgres serving through a failure with a standby, and spread reads across replicas.

A standby keeps your database serving when its server fails. Read replicas take read traffic off the primary. You can have both.

Standby and automatic failover#

A standby is a second, up-to-date copy of your database. If the primary fails, Plexivo promotes the standby automatically, at the same address and with the same user and password, so your app reconnects without a change.

The standby confirms every committed transaction before your app hears that it committed, so a failover loses no committed data.

  • Business: every database includes a standby.
  • Developer, Startup and Enterprise: tick Standby with automatic failover when you create the database.

A standby is one more instance of your database, shown in the price before you create it.

Read replicas#

Read replicas are live, read-only copies that can lag slightly behind the primary. Send reports, dashboards and other heavy reads to them, and keep the primary for writes.

  1. Open the Replicas tab. It shows how many your plan allows.
  2. Set Read replicas with the stepper and check the new monthly price.
  3. Apply it. Choose Add 1 replica (or as many as you added). New replicas join once they have copied the data. Remove works the same way.
PlanRead replicas per database
DeveloperNot included
Startup1
Business2
EnterpriseUp to 5

Each replica is one more instance of the database at its size, charged by the day.

The read-only address#

Once a database has replicas, the Replicas tab shows its Read-only address (this project). It spreads connections across the replicas and takes the same user, password and CA certificate as the primary. It is a private address, for apps and Plexivo Kubernetes workloads in the same project. Apps you connect to the database receive it as DATABASE_READ_URL.

js
import pg from 'pg';

const primary = new pg.Pool({ connectionString: process.env.DATABASE_URL });
const reads = new pg.Pool({ connectionString: process.env.DATABASE_READ_URL ?? process.env.DATABASE_URL });

await primary.query('insert into orders (total) values ($1)', [1299]);
const { rows } = await reads.query('select count(*) from orders');

Until you send reads to the read-only address, your apps keep using the primary.

Maintenance with a standby#

Updates are applied to replicas first. A database with a standby then switches over to an updated copy in seconds, instead of stopping; a database without one restarts once, for about a minute. An update that does not come up healthy is rolled back automatically. See Maintenance and patches.

For businesses For a database your customers depend on, pair a standby with read replicas: the standby keeps the primary serving, and the replicas take reports and dashboards off it. Plexivo’s availability commitment is on the Service level agreement page.

Next steps#

Updated 27 October 2026