Use Neon as your dev environment for AWS RDS: accelerate your workflow while reducing costs

Working with Neon read replicas

Learn how to create and and manage read replicas in Neon

Read replicas are supported with the Neon paid plans. This guide will lead you through the process of creating and managing read replicas.

The general methodology of using read replicas to segregate read-only work from your production database operations can be applied to a variety of uses cases, such as:

  • Offloading analytics or reporting queries
  • Distributing read requests to achieve higher throughput
  • Providing read-only data access to specific users or applications who do not need to modify data
  • Configuring different CPU and memory resources for each read replica for different users and applications

Regardless of the application, the steps for creating, configuring, and connecting to a read replica are the same. You can create one or more read replicas for any branch in your Neon project and configure the vCPU and memory allocated to each. Neon's Autoscaling and Autosuspend features are also supported, providing you with control over compute usage.

Prerequisites

Create a read replica

Creating a read replica involves adding a read-only compute endpoint to a branch. You can add a read-only compute endpoint to any branch in your Neon project using the Neon Console, Neon CLI, or Neon API.

To create a read replica from the Neon Console:

  1. In the Neon Console, select Branches.
  2. Select the branch where your database resides.
  3. Click Add compute.
  4. On the Create Compute Endpoint dialog, select Read-only as the Compute type.
  5. Specify the Compute size options. You can configure a Fixed Size compute with a specific amount of vCPU and RAM (the default) or enable autoscaling by configuring a minimum and maximum compute size. You can also configure the Suspend compute after a period of inactivity setting, which is the amount of idle time after which your read-only compute is automatically suspended. The default setting is 5 minutes.

    note

    The compute size configuration determines the processing power of your database.

  6. When you have finished making your selections, click Create.

In a few moments, your read-only compute is provisioned and appears in the Computes section of the Branches page. This is your read replica. The following section describes how to connect to your read replica.

Connect to a read replica

Connecting to a read replica is the same as connecting to any branch, except you connect via a read-only compute endpoint instead of a read-write compute endpoint. The following steps describe how to connect to your read replica with connection details obtained from the Neon Console.

  1. On the Neon Dashboard, under Connection Details, select the branch, the database, and the role you want to connect with.

  2. Under Compute, select a Read-only compute endpoint.

  3. Select a connection string or a code example from the drop-down menu and copy it. This is the information you need to connect to the read replica from you client or application.

    A psql connection string appears similar to the following:

    postgres://[user]:[password]@[neon_hostname]/[dbname]

    If you expect a high number of connections, select Pooled connection to add the -pooler flag to the connection string or example.

    When you use a read-only connection string, you are connecting to a read replica. No write operations are permitted on this connection.

View read replicas

You can view read replicas using the Neon Console or Neon API.

To view read replicas for a branch, select Branches in the Neon Console, and select a branch. Under the Computes heading, the Type field identifies your read replicas. Read replicas have a R/O value instead of R/W.

View read replicas

Edit a read replica

You can edit a read replica using the Neon Console or Neon API to change the Compute size or Autosuspend configuration.

To edit a read-only compute endpoint using the Neon Console:

  1. In the Neon Console, select Branches.
  2. Select a branch.
  3. Under Computes, identify the read-only compute endpoint you want to modify, click the compute endpoint menu, and select Edit.
  4. Specify your Compute size or Suspend compute after a period of inactivity changes and click Save.

Delete a read replica

You can delete a read replica using the Neon Console or Neon API. Deleting a read replica is a permanent action, but you can quickly create a new read replica if you need one.

To delete a read replica using the Neon Console:

  1. In the Neon Console, select Branches.
  2. Select a branch.
  3. Under Computes, find the read-only compute endpoint you want to delete. Read replicas have a R/O type.
  4. Click the compute endpoint kebab menu, and select Delete.
  5. On the confirmation dialog, click Delete.

Default and read replica compute setting synchronization

In a Postgres primary-standby configuration, certain settings should be no smaller on a standby than on the primary in order to ensure that the standby does not run out of shared memory during recovery, as described in the PostgreSQL hot standby documentation. For Neon read replicas, it's no different. The same settings should be no smaller on a read replica compute (the "standby") than on the default read-write compute (the "primary"). For this reason, the following settings on read replica computes are synchronized with the settings on the default read-write compute when the read replica compute is started:

  • max_connections
  • max_prepared_transactions
  • max_locks_per_transaction
  • max_wal_senders
  • max_worker_processes

Need help?

Join our Discord Server to ask questions or see what others are doing with Neon. Users on paid plans can open a support ticket from the console. For more detail, see Getting Support.

Last updated on

Edit this page
Was this page helpful?