Search
Write a publication
Pull to refresh
244.05
Postgres Professional
Разработчик СУБД Postgres Pro

We’ve learned how to migrate databases from Oracle to Postgres Pro at 41 TB/day

Level of difficultyEasy
Reading time3 min
Views201
Original author: LesnoyChelovek

Imagine a typical scenario: your company runs on Oracle Database, and over the years, you’ve accumulated tens of terabytes of data. Now you want to move to Postgres Pro — but the migration process quickly turns into a nightmare:

  • It takes forever to move all the data.

  • The source system can’t stop — it has to keep running, even though the data is constantly changing.

  • There’s a real risk of data loss or corruption — from transmission errors to type mismatches and other gremlins.

We decided to tackle these problems head-on and created ProGate, a toolkit that makes life a lot easier for DBAs and speeds up the migration to Postgres Pro.

What’s ProGate?

ProGate is an all-in-one solution for moving data into Postgres Pro. It’s a set of specialized tools that cover every step of the migration process:

  • ProCopy — high-speed initial data load.

  • ProSync — continuous change synchronization (CDC — Change Data Capture).

  • ProCheck — post-migration data quality and integrity checks.

Let’s go through them one by one.

Step 1. Initial data load with ProCopy

ProCopy is a console utility for blasting large amounts of data into Postgres Pro as fast as possible — without having to stop the source system. That means minimal downtime and minimal impact on running applications.

In our recent synthetic tests, we reached 200–500 MB/sec for Oracle → Postgres Pro migrations, which works out to about 41 TB/day. For PostgreSQL → Postgres Pro, we hit around 1 GB/sec.

How does it work

ProCopy is written in Go, so it’s lightweight, highly concurrent, and ready to chew through databases of any size. Under the hood, it uses:

  • A pool of parallel read/write processes.

  • An internal data bus for fast process communication.

  • Robust error handling with retries for problematic records.

ProCopy use case

Say you’ve got a CUSTOMERS table in Oracle with billions of rows. With ProCopy, you can:

  • Run the migration in parallel, tuning the number of reader/writer processes and batch sizes.

  • Exclude unnecessary columns.

  • Rename columns or change their data types.

  • Transform NULLs into default values on the fly.

Highlights

  • Blazing fast data transfer.

  • Flexible configuration (YAML/JSON).

  • Resume from where you left off.

  • Support for complex data types (LOB, XML, JSON, etc.).

Step 2. Change synchronization with ProSync (CDC)

ProSync keeps Oracle and Postgres Pro in sync by continuously capturing changes (CDC) and applying them to the target database. This makes it possible to migrate with very short downtime.

How does it work

Oracle stores every data change — inserts, updates, deletes — in redo logs. ProSync tails these logs in real time, detects each change, and immediately applies it to Postgres Pro.

As a result, your Postgres Pro instance is always up-to-date with Oracle, down to the last committed transaction.

Real-world example

A bank can’t afford even an hour of downtime. With ProSync, they can migrate data and apps gradually, while the old Oracle system stays live. Customers keep working with Oracle, and every transaction is instantly mirrored to Postgres Pro. Once everything’s in sync, switching over takes minutes.

Highlights

  • Minimal load on the source DB.

  • Reliable error handling and replication health monitoring.

Step 3. Data quality check with ProCheck

ProCheck verifies that the migration went smoothly and that the data in Postgres Pro is exactly the same as in Oracle.

How does it work

It compares tables, rows, and columns between the two databases. It catches discrepancies, conversion errors, and missing data — and gives you a detailed report.

ProGate use case

After migrating a financial system, you want to make sure every balance matches to the last cent. ProCheck will go row-by-row to confirm that nothing’s been lost or altered.

ProGate is perfect for:

  • Huge databases (terabytes and up).

  • Hot migrations with minimal downtime.

  • Strict data consistency requirements.

Known Limitations

While ProGate solves a lot of headaches, you should keep in mind:

  • Schema changes during migration may require manual handling.

  • Custom data types may need special mapping.

  • Tables without primary keys — ProSync works best with unique identifiers.

What’s next

The public release of ProGate is planned for this fall. Our roadmap includes:

  • A graphical UI, backend, and API.

  • New sources/targets (MS SQL Server, MySQL, Shardman).

In short: ProGate will let you move from Oracle to Postgres Pro fastsafe, and with zero drama — no endless downtime, no missing data, no nasty surprises.

We’ll share more about the technical internals after the public launch.

Tags:
Hubs:
+5
Comments0

Articles

Information

Website
www.postgrespro.ru
Registered
Founded
Employees
501–1,000 employees
Location
Россия
Representative
Иван Панченко