Skip to main content

Self-Managed PostgreSQL to AWS RDS PostgreSQL Migration | NineData

Use this workflow when you need to move a self-managed PostgreSQL database to AWS RDS PostgreSQL while keeping the source online. NineData supports full migration, incremental synchronization, data comparison, and task alerts so you can validate the target before cutover.

Overview

Cross-cloud migration needs more than a one-time copy. Teams usually need private connectivity, consistent object mapping, validation, and a rollback plan before they switch traffic.

NineData helps you:

  • Keep the source database available during migration.
  • Move existing data first and then synchronize new source changes.
  • Check the target data before cutover.
  • Monitor task status and delay during the migration window.

When to use this workflow

Use this workflow when you need to:

  • Move a self-managed PostgreSQL database to AWS RDS PostgreSQL.
  • Keep the source database online during migration.
  • Reduce the cutover window by using full and incremental replication together.
  • Validate the target before business traffic moves over.
  • Keep a rollback option available during the migration window.

Before you begin

  • Make sure you can access the NineData console.
  • Prepare the connection information and credentials for the self-managed PostgreSQL source and AWS RDS PostgreSQL target.
  • Confirm that NineData can reach both databases through the private network path you plan to use.
  • Make sure the source and target accounts have the permissions required for schema, full, and incremental replication.

Procedure

Step 1: Add the source and target data sources

  1. In the NineData console, click Data Source Management > Data Sources, and then click Create Data Source.

    Create PostgreSQL and AWS RDS PostgreSQL data sources

  2. Follow the page prompts to add the source data source through private network connectivity, and then click Create Data Source. Repeat this step for the target data source.

    Configure private network connectivity

Step 2: Create the replication task

  1. In the NineData console, click Data Replication > Data Replication, and then click Create Replication.

    Create a replication task

  2. Configure the replication task for the PostgreSQL source and AWS RDS PostgreSQL target. To move existing data and keep later changes in sync, select Structural Replication, Full Replication, and Incremental Replication.

    Select replication types

  3. Run the precheck, fix any failed items, and then start the task.

    Task progress and delay

  4. After the task starts, NineData runs a full migration first and then keeps synchronizing new source changes. When the task panel shows Delay 0 seconds, the target has caught up with the source.

Step 3: Validate the target data

  1. Open the replication task details page.

  2. Click the Data Comparison tab. If comparison was not enabled during task creation, click Enable Data Comparison.

  3. Click Re-compare after new changes arrive to validate the latest synchronized data.

    Review data comparison results

Step 4: Configure alerts

  1. Open the replication task details page.

  2. Click Configure Alerts.

  3. Enter a Policy Name, review the default rules, and click Save Configuration.

    Configure task alerts

Result

After full migration completes, incremental synchronization keeps AWS RDS PostgreSQL aligned with source changes. When validation passes and delay stays within your cutover plan, switch application traffic to the target.