HexaCluster LogoHexaCluster Logo
  • Services
  • Products
  • HexaRocket
  • Blog
  • Resources
  • Company
  • Contact Us
Schedule a Demo
Stay Updated

Subscribe to Newsletters

Be the first to know! Stay updated with the latest insights, database migration benchmarks, and technical updates from HexaCluster.

HexaCluster LogoHexaCluster Logo

Enterprise-grade Database migration, modernization, and tooling for teams moving off legacy databases.

  • One Dundas Street West, Suite 2500, Toronto, Ontario, M5G 1Z3, Canada
  • HexaCluster DMCC, Plot No: JLT-PH2-RET-R6 Jumeirah Lakes Towers, Dubai, UAE
connect@hexacluster.ai+1 (902) 221-5976

Security & Compliance

SOC 2 Type 1 reportSOC 2 Type 2 report, monitored by Comp AIGDPR compliantISO 27001AICPA SOC for Service Organizations

Products

  • DMAT
  • HexaRocket
  • HexaBridge
  • HexaTranspile
  • MyBatis2Pg
  • HexaReplicate
  • Download Products

HexaRocket

  • Supported Database Migrations
  • Migrate to Yugabyte
  • About HexaRocket
  • Migrate to Oracle
  • Migrate to PostgreSQL
  • Migrate to MariaDB

Services

  • Database Migration to PostgreSQL
  • Application Migration and Modernization
  • AI/ML and MLOps
  • Architectural Health Audit
  • Managed DBA Services
  • Performance Tuning
  • PostgreSQL Development
  • Training for DBAs & Developers
  • 24/7 Support
  • Supported Tools and Extensions

Company

  • Blog
  • Case Studies
  • Webinars
  • Announcements
  • About Us
  • Referral Program
  • Events
  • Contact Us

© HexaCluster 2026. All rights reserved. Privacy PolicyThis site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

HEXACLUSTERHEXACLUSTERHEXACLUSTER

Migrating a 50 TB EDB PostgreSQL database with TimescaleDB to PostgreSQL using HexaRocket

Manisankar K,Goutham Banala,Srikanth Kolli
Jul 22, 2026
Database MigrationHexaRocket#EDB Postgres#HexaRocket#TimescaleDB+1 more

How we migrated a Qatar government entity's 50 TB EDB PostgreSQL database, TimescaleDB included, to community PostgreSQL: live replication, content-level data validation, and a near-zero-downtime cutover.

A Success Story for HexaCluster and Mannai - delivered using HexaRocket

We are excited to share one of the HexaRocket’s success stories involving a migration of a 50 TB - EDB PostgreSQL database with TimescaleDB, to Community PostgreSQL with TimescaleDB. Mannai, our Partner from Qatar, reached out to us about this migration for a government entity in Qatar (Confidential), with a challenge that the migration must be executed faster and online, without impacting the business operations.

Before we begin, we sincerely want to acknowledge the efforts and expertise by Mannai, especially, the Service Delivery Manager, Satish Kumar Sadhu, and his team, who have ensured an efficient planning, communication and the execution of this Project. Mannai served as the prime implementation and delivery partner for this migration, leading the overall project planning, architecture assessment, customer coordination, validation, testing, and production cutover. HexaCluster provided the HexaRocket migration platform and worked closely with the Mannai team to address the specialized migration requirements of this large-scale PostgreSQL environment.

image

The project that was originally considered easily achievable was understood as challenging. The scale explains why – 50 TB of data, 1 to 3 TB of write-ahead log (WAL) generated every day, nearly 300 GB of WAL segments generated during Peak, and Millions of events are ingested per hour. An additional requirement was to perform the entire migration from a Standby database, but not from Primary.

Before engaging HexaCluster, Mannai conducted a comprehensive technical evaluation and solution assessment for the PostgreSQL migration. This included evaluating PostgreSQL native logical replication, open-source replication tools, and approaches from multiple PostgreSQL technology providers. Based on this assessment, it was determined that the project’s scale, performance requirements, and near-zero downtime objectives required a specialized migration tool. HexaCluster was then engaged to complement Mannai’s implementation expertise with its advanced migration technology, ensuring the successful delivery of the migration.

Following the technical evaluation, Mannai selected HexaRocket as the migration platform best suited to meet the project's scale, performance, and near-zero downtime requirements. Together, Mannai and HexaCluster completed multiple dry runs and successfully executed the production migration with zero data loss and live replication. Within 3 weeks, we were able to complete multiple dry runs, and also complete the Production database cutover, with zero data loss, and live replication.

In this article, we are going to share some details on the complexity and the approach and how HexaRocket made it seamless.

image

Why was this genuinely hard using Logical replication or other Open-Source replication tools

On paper, this migration is routine. EDB PostgreSQL and community PostgreSQL may be similar engines at heart, and TimescaleDB runs happily on both. What changes everything is the write volume - this database ingested millions of events per hour, around the clock, producing 1 to 3 TB of WAL on an ordinary day and more on a busy one. During the peak hours, the workload does generate between 150 GB to 300 GB of WAL segments per hour.


HexaRocket

⚡ Automated Schema Conversion

Near 100% automated conversion for enterprise databases including Oracle, SQL Server, MySQL, MariaDB, DB2, Cassandra and PostgreSQL.

Procedures Functions Triggers Validation
Explore HexaRocket
CDC & Replication

🔄 Real-Time Data Movement

Zero-lag CDC replication with better visibility, simplified configuration, and enterprise-grade monitoring.

Zero Lag CDC Monitoring Cutover Rollback
Learn More
Migration Platform

🚀 End-to-End Modernization

Assessment, schema conversion, replication, rollback, and migration visibility - all from one platform.

Assessment Rollback Validation Automation
Explore HexaCluster Products

The customer also required a live, continuous replication into the new environment before cutover, not a dump-and-restore weekend. The textbook answer would be PostgreSQL's native logical replication, but at this change rate it becomes nearly impossible to operate. The initial synchronization of 50 TB has to complete while the replication slot forces the source to retain days of WAL. The subscriber must then keep pace with terabytes of daily change or fall ever further behind. And, critically, logical replication does not replicate DDL: schema changes simply do not flow.

That last restriction collides head-on with TimescaleDB. If you have not tried it before, TimescaleDB is an extension that turns large tables into hypertables, automatically partitioning them into many smaller chunk tables. It is built exactly for heavy streams of timestamped data - IoT device telemetry, financial ticks, application metrics. Our customer used it on their busiest tables, which means the database was creating new chunk tables on the fly as data for new time ranges arrived. A replication approach that cannot carry DDL falls apart when the schema itself changes many times a day.

One more constraint shaped the whole design - the source system was already fighting disk I/O (IOPS) saturation at peak. Whatever we did, we could not add heavy read pressure to the production primary.

First, a baseline - what does 50 TB actually take?

We began with a deliberately unoptimized, single-pass full load of the entire dataset using HexaRocket. We can apply Parallel workers to migrate multiple tables in parallel. It took about 3 days. Remember that this was the first dry-run. We are aware that this number was never going to survive with a real cutover plan, but it gave us exactly what we needed: per-table load timings and a clear picture of the kind of data each table held. From there, we knew where the time was going and what to parallelize.

Accelerating the initial load to ~1.5 TB per hour

HexaRocket is built exactly for this situation. It parallelizes data migration across many tables at once and, more importantly here, it parallelizes within a single table - multiple worker processes copy disjoint slices of the same large table (including individual timescaledb chunks) concurrently, so even the biggest hypertables load at full speed.

After configuring parallel workers based on the baseline analysis, we sustained roughly 1.5 TB per hour, bringing the initial load of the full 50 TB down from about 3 days to 28 hours in repeated dry-runs. Three more decisions made that number, and the system around it, hold up -

  • Indexes were dropped on the target during the load and rebuilt later, once the data was validated. Loading into index-free tables is dramatically faster than maintaining indexes row by row.
  • Data was distributed across multiple tablespaces on separate physical disks. The customer was already living with IOPS saturation on the source, so we designed the target's storage layout to spread I/O from day one.
  • Everything ran against a standby, not the primary. Both the initial load and the change data capture that followed read from an EDB standby server, so the production primary never felt the migration.

The Architecture

image

HexaRocket reads from the EDB standby (initial parallel load, then ongoing changes) and writes to community PostgreSQL with TimescaleDB, with data spread across multiple tablespaces. Applications keep writing to EDB PostgreSQL until cutover day.

A production-grade, highly available target

The destination was never meant to be a single server. We built the target as a Patroni-managed high-availability cluster - a primary with a synchronized standby and automated failover - so the customer inherited resilience, not just a copy of their data. Bootstrapping Patroni across a 50 TB dataset is itself a serious undertaking; the initial cluster build takes real time at that scale. We completed it successfully, and the applications cut over onto an HA platform from their very first transaction, rather than waiting for high availability to arrive as a later project.

Not every table needs real time: a two-pool strategy

With 1-3 TB of change flowing through the system daily, keeping every table on a real-time pipeline would have been the hard way for no benefit. HexaRocket provided a detailed clarity in its Monitoring Dashboards, on the type of DMLs observed per table, during our dry runs. So, we sat down with the customer's application teams and categorized the tables into two pools.

  • The OLTP pool: live CDC. Transactional tables that the business reads and writes moment to moment went onto HexaRocket's change data capture (CDC) replication; streaming changes continuously to the target.
  • The OLAP pool: scheduled batch sync. HexaRocket provides a simple switch on its UI to move a Table from a log-based replication (WAL segments are decoded) to a Batch-based replication. Analytical tables were synchronized on a schedule (every 15 minutes to every hour) using a high-watermark approach - each run records the highest watermark-column value it has applied, and the next run picks up everything newer. These tables stayed within roughly 10-15 minutes of the source, comfortably inside what their analytics required.

The effect was that the real-time pipeline stayed lean and fast for the tables that genuinely needed it, while the heavy analytical tables synced efficiently in batches.

Validation that goes beyond row counts

A migration is only as good as your proof that nothing was lost. Counting rows is necessary (HexaRocker supports row count validation), but nowhere near sufficient, so we ran HexaRocket's data validation, which compares the actual data between source and target and reports every inconsistency it finds, not just mismatched counts.

We enabled the built-in Validation during data migration. Additionally, using the HexaRocket’s offline data validation feature, these checks ran continuously against the replicated tables. This is what moved the customer from hopeful to confident - they could see, table by table, that the migrated data was complete and correct, with no silent corruption. Only then did we rebuild the indexes on the target, by pausing the replication only for the specific tables on which we were rebuilding Indexes and start preparing for cutover.

A two-phase cutover

We designed the switchover in two phases so the final day would be as small and boring as possible.

Phase 1: hand the OLAP tables over early. A few days before the main switchover, the analytical tables were handed to the customer's ETL team, who began running their ETL jobs against both EDB PostgreSQL and community PostgreSQL in parallel. By cutover day, analytics was already living on the new platform.

Phase 2: converge the OLTP tables. With analytics out of the way, we focused entirely on the transactional tables under live CDC, running data validation and count checks continuously to confirm that source and target matched in real time.

On switchover day the sequence was short and rehearsed: the application teams paused traffic to EDB PostgreSQL, we let the remaining changes drain to the target, ran a final count validation across all tables, synchronized the sequence values, and pointed the applications at community PostgreSQL. Writes resumed on the new platform after a pause, not an outage.

The outcome

The full 50 TB estate now runs on community PostgreSQL with the open-source TimescaleDB extension, migrated without a single data issue and cut over with near-zero downtime.

  • No more proprietary licensing. The customer completed the move from a commercial distribution to open source, a path we have refined across many commercial-database-to-open-source migrations.
  • The same TimescaleDB capabilities, now on a community platform they fully control.
  • A storage layout built for their I/O profile, with data distributed across multiple tablespaces and physical disks, directly addressing the IOPS pain they had lived with on the source.

What made this work was not one trick. It was a baseline measured honestly, parallelism applied where the data said it would pay off, a replication strategy shaped with the application teams rather than imposed on them, validation the customer could verify for themselves, and a cutover runbook detailed enough that the day itself held no surprises. Our thanks to Mannai for the partnership throughout the engagement.

Planning a PostgreSQL migration?

If you are weighing a move from EDB PostgreSQL, Oracle, or another commercial database to PostgreSQL, this is exactly what we do. HexaRocket handles parallel initial loads, live CDC, scheduled batch sync, and content-level data validation at terabyte scale, and our engineers have run it against production systems that cannot afford to stop. Explore our database migration to PostgreSQL services or talk to our team.

HexaCluster provides end-to-end migration and modernization services, including application migration and modernization, database migration, and PostgreSQL consulting such as performance tuning, health audits, managed DBA services, and 24/7/365 support.

To start a conversation or explore how we can support your migration journey, please contact us at connect@hexacluster.ai

Subscribe to our Newsletters and Stay tuned for more interesting topics.


Authors

Manisankar K

Manisankar K

Director of Database Operations

Manisankar is the Director of Database Operations at HexaCluster. Before joining HexaCluster, he worked as a Senior Database Manager at MigOps and as a Database Consultant at HCL. As a PostgreSQL expert, Mani has supported numerous customers in deploying PostgreSQL and published a number of technical articles in his free time. In addition to PostgreSQL, he is also skilled in other database technologies such as MySQL, Oracle, Cassandra and more. Manisankar is also well-versed in development languages such as Python, Groovy, and Perl, empowering him to create solutions that automate complex operations for Customers.

Goutham Banala

Goutham Banala

Senior Database Developer and Administrator

Goutham is a Senior Database Developer and Administrator, who graduated from one of the reputed universities like IIIT. He is passionate about Open Source and building solutions for Highly Available and Scalable PostgreSQL clusters. Goutham has supported several Customers in deploying PostgreSQL efficiently and migrating from Oracle, SQL Server and MongoDB to PostgreSQL.

Srikanth Kolli

Srikanth Kolli

Database Administrator

Srikanth Kolli serves as an Oracle and PostgreSQL Database Administrator at Mannai, our Partner. Srikanth works collaborates with partners of Mannai, like HexaCluster in delivering complex migration engagements.

Start your migration journey 🚀

start your migration journey with our expert team

Products

DMAT

Database & Application Migration Assessment Tool

HexaRocket

End-to-End Database Migration & Modernization Tool

HexaTranspile

Database Code Object Conversion to PostgreSQL

MyBatis2Pg

MyBatis Mapper Conversion to PostgreSQL

HexaReplicate

Enterprise Data Replication & Live CDC

HexaBridge

Oracle Compatibility Layer for PostgreSQL

HexaRocket 🚀

Oracle to PostgreSQLSQL Server to PostgreSQLMySQL to PostgreSQLMariaDB to PostgreSQLAny to Any databases

Migration Services

Database MigrationsApplication Modernization

PostgreSQL Consulting

Architectural AuditsPerformance TuningTraining & Support