Best Data Replication Tools in 2026, Compared
39 min read

Key takeaways
"Replication" means four different jobs. You might want a standby copy for failover, a copy for reports, a copy in a data lake, or a one-time move to a new database.
Start with your database's own replication for a standby or read copy.
Reports in a warehouse point to Fivetran, Estuary, Artie, Airbyte or Google Datastream.
Iceberg tables on storage you control point to Debezium Server or OLake Go.
Big Oracle estates point to Oracle GoldenGate, Qlik Replicate or Striim, and a move into AWS points to AWS Database Migration Service (DMS).
- Replication is NOT backup. PostgreSQL's docs say restoring a backup takes much longer than failing over to a standby.
- Two-way replication is hard. AWS DMS says its two-way mode has no conflict resolution, and Oracle GoldenGate's FAQ warns of update conflicts and loops.
Prices were checked in October 2026 against each vendor's own pages. Prices move, so confirm before you decide. Facts about the other vendors in this post come from their own pages and were not tested by us.
What data replication means
AWS defines data replication as copying data from one location to another to keep several synchronized copies. In this post, "source" is where the data starts and "target" is the copy.
| Job | What it does | Keeps copy in step? | Typical use |
|---|---|---|---|
| Replication | Copies data and keeps the copy current | Yes, continuously or on a schedule | Standby, reports, lake |
| Backup | Saves a point-in-time copy to restore from | No, only at the time of the backup | Recovery after loss or error |
| Migration | Moves data once to a new system | Only until cutover | Changing database or cloud |
| ETL (extract, transform, load) | Copies data and reshapes it on the way | Depends on the tool | Building clean reporting tables |
Full copy, incremental copy and change data capture

A full copy resends the whole table every run. An incremental copy asks only for rows changed since the last run, and that needs a "changed at" column that is updated on every edit.
Change data capture (CDC) reads the database's transaction log, which is the file where the database writes down every change in order. AWS says log-based detection is preferred for databases because it is efficient and captures changes with low latency.
A "changed at" column can miss rows that were deleted for good, since a deleted row leaves no timestamp behind.
Synchronous vs asynchronous
Synchronous means the source waits until the replicas confirm each write. AWS says this suits mission-critical data but is sensitive to network delay.
Asynchronous means the source does not wait, but PostgreSQL's docs say transactions not yet shipped are lost if the primary fails badly.
One-way or two-way
Most replication is one-way. The source takes the writes and the target is a read-only copy. Two-way replication lets both sides take writes, and that's where conflicts show up.

AWS DMS supports two-way replication on Oracle, SQL Server, MySQL, PostgreSQL and the two Aurora editions. Its docs are blunt about the limits. It is not a full multi-master solution, it has no conflict detection or resolution, and it suits data that is operationally segregated between the two nodes.

AWS DMS documentation, October 2026.
How we picked these
Tools here copy data out of a database, are maintained, and publish documentation we could open. We compared the copy method, sources, where the data lands, how it is run, and price, using each vendor's own pages in September and October 2026. None of the other tools were run, so this is a reading of documents, not a lab test.
Backup products and warehouse-only products are left out.
Data Replication Tools at a Glance
Cells for the other vendors state what their own docs say, and we did not test them.
| Tool | How it finds changes | Sources named in its docs | Runs as |
|---|---|---|---|
| Native database replication | The database's own log | PostgreSQL, MySQL (each its own) | Part of the database |
| Oracle GoldenGate | Reads redo or transaction logs | Oracle, MySQL, PostgreSQL, SQL Server, Db2 | Self-managed, or Oracle's service |
| Qlik Replicate | Log-based | Oracle, SQL Server, Db2, MySQL, PostgreSQL, mainframe | Client-managed software |
| Striim | Log-based | Oracle, PostgreSQL, SQL Server, MySQL, MongoDB | Cloud, or self-managed |
| Fivetran High-Volume Agent (HVA) | Log-based | Oracle, SQL Server, Db2 for i | Fivetran SaaS or Hybrid |
| AWS DMS | Log-based | Oracle, SQL Server, MySQL, PostgreSQL, MongoDB | AWS managed |
| Google Datastream | Per source | MySQL, Oracle, SQL Server, PostgreSQL, MongoDB | Google Cloud serverless |
| Debezium | Log-based | MySQL, PostgreSQL, Oracle, MongoDB and more | Self-hosted |
| Log-based | PostgreSQL, MySQL, MongoDB, SQL Server | Self-hosted | |
| Estuary | Log-based | PostgreSQL, MySQL, Oracle, SQL Server | Managed, private or your cloud |
| Airbyte | Log-based, on a schedule | PostgreSQL, MySQL, MongoDB, SQL Server | Core self-managed, or Cloud |
| Artie | Log-based | PostgreSQL, MySQL, MongoDB, Oracle, SQL Server | Managed, or your cloud on Enterprise |
| Tool | Where the copy lands | Price basis, with date |
|---|---|---|
| Native database replication | Another server of the same database | Included in the database |
| Oracle GoldenGate | Many targets; its FAQ lists Iceberg, write details are in the separate GoldenGate DAA docs | Per OCPU in OCI; on-premises licence not quoted here (October 2026) |
| Qlik Replicate | Many targets; Iceberg via Qlik Open Lakehouse, or a Cloudera Iceberg target | Not published (October 2026) |
| Striim | Many targets; Iceberg on Google Cloud Storage or Amazon S3 Tables | Contact us; Developer tier free (October 2026) |
| Fivetran HVA | Fivetran destinations | No separate HVA price found; Enterprise plan or higher (October 2026) |
| AWS DMS | Many targets, S3 files; no Iceberg target | Instance or DCU hours (October 2026) |
| Google Datastream | BigQuery, Cloud Storage, Iceberg (append-only) | Per GiB processed (October 2026) |
| Debezium | Kafka; Iceberg through a community sink | Free licence, you pay for servers |
| Apache Iceberg or Parquet | Free licence, you pay for servers | |
| Estuary | Warehouses and lakes; Iceberg on S3 only | $0.50 per GB plus connector fees (October 2026) |
| Airbyte | Warehouses and lakes; Iceberg on S3 and GCS | Core free; Cloud from $20 a month (October 2026) |
| Artie | Warehouses and lakes; Iceberg on Enterprise | Free to 1M rows; Growth from $500 a month (October 2026) |
Sources: Estuary pricing, Airbyte pricing, Artie pricing; the other prices carry their sources in the entries below. Checked October 2026.
The 12 data replication tools
Built into your database
1. Native database replication (PostgreSQL and MySQL): standby copies and read replicas
At a glance
- Method: The database's own log, shipped to another server
- Price: Included in the database. You pay for the servers.
PostgreSQL's log-shipping standby is a second server that's ready to take over if the primary fails. MySQL's replication (8.4 reference manual) copies from a source to one or more replicas, and it is asynchronous by default.
Where it fits
- No extra product to buy or run. MySQL's replication manual lists scale-out reads, running backups on a replica and analytics on a replica as benefits.
- MySQL also offers semisynchronous replication, where a commit on the source blocks until at least one replica acknowledges it, and delayed replication, where a replica deliberately lags by at least a set time (MySQL 8.4 replication).
- MySQL can replicate all databases, selected databases or selected tables within a database, depending on the configuration (MySQL 8.4 replication).
- PostgreSQL supports physical replication (byte by byte) and logical replication (per object, keyed on the replication identity, usually a primary key) at the same time (PostgreSQL logical replication docs).
- A PostgreSQL standby can also answer read-only queries, in which case it is called a hot standby (warm standby docs).
Where it falls short
- It copies between servers of the same database. PostgreSQL log shipping between different major release levels is in general not possible, and the hardware architecture must match, so a 32-bit to 64-bit copy will not work (warm standby docs).
- PostgreSQL's logical replication does not copy the database schema, DDL commands, sequence data or large objects, and it only replicates tables, so views and materialized views raise an error (PostgreSQL logical replication restrictions).
- An unread replication slot, the bookmark PostgreSQL keeps for a reader, keeps log files on disk and can fill storage. The docs say slots persist across crashes and know nothing about their consumers, and a slot that is no longer needed should be dropped (PostgreSQL logical decoding docs).
- Log shipping is asynchronous: transactions not yet shipped are lost if the primary suffers a catastrophic failure (warm standby docs).
- MySQL replication is asynchronous by default, so a replica can trail the source, and replicas do not need to stay connected (MySQL 8.4 replication).
Enterprise platforms
2. Oracle GoldenGate: Oracle estates and two-way setups

Oracle GoldenGate home page, October 2026.
At a glance
- Method: Reads redo or transaction logs, the database's record of changes
- Price: Per OCPU (Oracle's compute unit) on Oracle Cloud, metered by the minute (Oracle FAQ, October 2026). We do not quote an on-premises licence price.
Oracle's FAQ says GoldenGate captures, transforms and delivers transactional changes across systems in real time. You can run it in one-way, two-way and multi-directional setups.
Where it fits
- Oracle's FAQ lists Oracle, MySQL, PostgreSQL, SQL Server and Db2 (LUW, z/OS and i) among supported databases, with Amazon RDS, Aurora, Google Cloud and Azure database services, and also names Kafka, Snowflake and Apache Iceberg as targets (FAQ).
- It documents one-way, two-way and multi-directional setups, and advises conflict detection and resolution policies plus primary or unique keys on all replicated tables (FAQ).
- The FAQ says it supports change capture from MongoDB and MongoDB Atlas, and two-way replication between MongoDB databases (FAQ).
- For Oracle databases, the FAQ says GoldenGate 26ai supports 19c to 26ai and later, and GoldenGate 19c and 21c support 11.2.0.4 to 21c (FAQ).
- The FAQ says OCI GoldenGate is a fully managed service where Oracle handles backups, patching and upgrades, while GoldenGate on the OCI Marketplace is customer-managed. Self-managed deployments run on a VM, bare metal or Kubernetes (FAQ).
Where it falls short
- The FAQ lists Apache Iceberg among targets, but the write details sit in the separate GoldenGate for Distributed Applications and Analytics (DAA) docs. Oracle's Iceberg page lists Glue, Hadoop, Nessie, Polaris and REST catalogs but, in the version we read, states no write limits such as delete handling.
- It cannot capture from Salesforce, Teradata or TimesTen (FAQ).
- The FAQ warns that two-way setups need careful planning because they can cause update conflicts, replication loops, data divergence, latency sensitivity and operational complexity (FAQ).
- The FAQ says the Classic Architecture (administered with GGSCI) is de-supported in 26ai, and the other model is the REST-based Microservices Architecture (FAQ).
- On OCI, billing is per OCPU: you pick a base size of 1 to 24 OCPUs (1 to 8 with Auto-Scale, which reaches 3 times the base), and each hour is billed at the larger of the service size and the OCPUs actually consumed (FAQ).
- We don't quote an on-premises dollar price.
Check before you rely on it: ask Oracle for a written quote for your own core count, because we do not quote an on-premises price.
3. Qlik Replicate: mixed legacy and mainframe sources

Qlik Replicate / Qlik Talend Cloud home page, October 2026.
At a glance
- Method: Log-based, which Qlik calls "zero footprint" (a vendor claim we did not test)
- Price: Capacity bands by data volume and job runs, no list prices (Qlik pricing page, October 2026)
Qlik's product page lists Oracle, SQL Server, Db2, MySQL, PostgreSQL and mainframe sources.
Replicate is client-managed software, so you install it yourself on Windows Server or Linux (Qlik support matrix).
Where it fits
- Qlik's product page lists mainframe sources and relational, warehouse and cloud-platform categories, and says Replicate works across hundreds of sources and targets.
- Replicate May 2026 added an IBM IMS source endpoint, an IBM Db2 for LUW target endpoint and a Cloudera Iceberg target, and added MariaDB 11.8 and Kafka 4.1 and 4.2 support (Qlik May 2026 release notes).
- Qlik's release notes say Qlik Open Lakehouse, a Qlik Talend Cloud feature, writes Iceberg tables. They describe a route where Replicate lands data in S3 and an Open Lakehouse pipeline onboards it into Iceberg tables (release notes).
- On an Oracle source, Replicate can read the redo logs with either Oracle LogMiner or Qlik's own Replicate Log Reader, and the docs list separate limits for each (Qlik Oracle source limitations).
Where it falls short
- Prices are not published. The Qlik pricing page shows a Contact Us button for each of its four Talend Cloud editions and says usage is measured by data volume moved, job runs and run time.
- On the pricing page, log-based CDC first appears in the Standard edition list, not in Starter (pricing page).
- Oracle 21c cannot use LogMiner (Oracle's log-reading tool) with Replicate, only Qlik's own log reader. Also on 21c, immutable tables and blockchain tables are not supported, and CDC is not supported when a schema, table or column name is over 30 characters (Oracle source limitations).
- Capturing changes from a pluggable database (PDB) with LogMiner is not supported, and Qlik does not recommend LogMiner on a RAC environment because of unpredictable behavior (Oracle source limitations).
- Replicate's own Iceberg target in the May 2026 release is Cloudera Iceberg. Other Iceberg routes run through Qlik Open Lakehouse in Talend Cloud (release notes).
4. Striim: Oracle-heavy streaming

Striim home page, October 2026.
At a glance
- Method: Log-based
- Price: Developer tier free up to 25 million events a month; Cloud and Platform say "contact us" (Striim pricing page, October 2026)
For Oracle, Striim gives you two readers, Oracle Reader (LogMiner) and OJet. Both read Oracle 11g and higher.
Where it fits
- Striim's Oracle docs position Oracle Reader (LogMiner) for 20 to 80 GB of CDC data an hour and OJet for 150+ GB an hour. Both read Oracle 11g and higher, RAC and PDB/CDB. We have not tested either figure.
- Its GG Trail Reader can read existing Oracle GoldenGate trail files (versions 11g, 12c, 18.1 and 19.1) without extra LogMiner sessions (Oracle docs).
- Striim's docs say the Iceberg Writer has Merge mode, which mirrors source inserts, updates and deletes, and Append Only mode, which treats every operation as an insert. Its docs add schema evolution that propagates DDL changes, and at-least-once recovery.
- Its docs say the S3 Tables Writer writes change and snapshot data into Iceberg tables in Amazon S3 Tables, using Amazon EMR for compute and either the S3 Tables catalog or AWS Glue, with DDL propagation for supported source changes.
- The pricing page shows a free Developer tier with trial access to premium, standard and 200+ preview connectors, and a Striim Cloud card that says "Pay only for the data you move".
Where it falls short
- The Iceberg Writer says the only supported data lake in this release is Google Cloud Storage. It also needs a Spark compute service and a catalog, and partitioned tables must be created by hand. Separate S3 Tables and GCP Lakehouse writers exist too.
- The same page limits the catalog to Lakehouse, Nessie or Polaris, supports GCS only as the staging area, and recommends the Hadoop catalog only for development and testing (Iceberg Writer).
- It also says time source data types are written as strings in Iceberg, and recovery is at-least-once (Iceberg Writer).
- The S3 Tables Writer requires lowercase table, namespace and column names, which breaks wildcard mappings against sources that use uppercase identifiers.
- Cloud and Platform prices are not published: the pricing page shows "Contact us for pricing" for both, and Platform says "License the connectors you need".

Striim Iceberg Writer documentation, October 2026.
5. Fivetran High-Volume Agent (HVA): big enterprise databases, run by a vendor

Fivetran home page, October 2026.
At a glance
- Method: Log-based, through Fivetran's High-Volume Agent (HVA)
- Price: no separate HVA price found; HVA connectors need an Enterprise or Business Critical plan (Fivetran billing docs, October 2026)
Fivetran's page on High-Volume Agent (HVA) connectors lists Db2 for i, Oracle, SQL Server and other enterprise systems. They run in Fivetran's cloud (SaaS), or in Hybrid mode, where data is processed in your own network.
Where it fits
- The HVA page lists connectors for Db2 for i, Oracle, SQL Server, SAP ERP and three SAP ECC variants.
- Fivetran's Managed Data Lake Service writes Parquet to your own S3, Azure Data Lake Storage or Google Cloud Storage account. Its docs say Fivetran always creates Iceberg metadata and manages the catalogs and maintenance operations.
- The same page lists optional catalog integrations, including Databricks Unity Catalog and Snowflake catalog-linked databases, and Lake Compute, a hosted DuckDB-based engine for running dbt transformations on the Iceberg tables (Managed Data Lake Service).
- Per its maintenance notes, Fivetran deletes old snapshots once a day while always keeping at least the last 2, and moves orphan files to an
orphansfolder on the second and fourth Saturdays of each month (Managed Data Lake Service). - Fivetran's usage docs say a row is counted once a month even if it syncs several times, and every new connection has 14 days of free usage.
Where it falls short
- The price is not published. Billing is by Monthly Active Rows (rows changed in a month), so you'll want to estimate your change volume first.
- MAR keys are counted separately for each connection and table, so two connections that sync the same data count twice (usage docs).
- The HVA Oracle and HVA SQL Server connectors need the Enterprise or Business Critical plan, and annual contracts have a $12,000 minimum, against a $5 minimum per connection on monthly pay-as-you-go (billing docs).
- The Iceberg service does not support position deletes (a way to mark a row as removed by its place in a file), and its page lists only the SaaS deployment (Managed Data Lake Service).
- On AWS, it does not support the S3 Glacier Flexible Retrieval, Glacier Deep Archive or Intelligent-Tiering archive tiers, and the Glue catalog allows one table per schema and table name combination in a Region (Managed Data Lake Service).
- Iceberg reserves some column names (
_deleted,_file,_partition,_pos,_spec_id,file_path,pos,row), so Fivetran prefixes them with a hash symbol before writing (Managed Data Lake Service).
Cloud-native services
6. OLake Go: best for database changes into Iceberg on your own storage

OLake home page, October 2026.
At a glance
- Method: Log-based change capture (connectors)
- Price: Free licence (Apache 2.0); you pay for infrastructure and staff
OLake Go is open source. It reads PostgreSQL logical replication, the MySQL and MariaDB binlog, MongoDB change streams and SQL Server's native CDC, then writes Apache Iceberg or Parquet to storage you control.
Engines such as Snowflake, BigQuery, Redshift, Athena, Spark and Trino can read the Iceberg tables it writes, depending on the catalog and the delete format (the engine compatibility page lists the conditions for each engine).
What's good
- It does the first copy and then change capture in one tool (connectors).
- It writes eleven Iceberg catalog types, and handles deletes with equality and positional deletes plus deletion vectors since v0.11.0 (catalogs).
- It installs with Docker Compose and a web UI, a Docker command line, or Helm on Kubernetes (Docker Compose, Docker CLI and Kubernetes install pages).
- It follows schema changes: adds, drops and renames are detected, and widening type changes are documented (schema evolution).
- Full loads are split into parallel chunks, and syncs are stateful and resumable: after a crash, network failure or pause, an interrupted run resumes from its last checkpoint instead of starting over (capabilities).
- It uses a two-phase commit for the Iceberg destination in full refresh, incremental and CDC runs (MongoDB, PostgreSQL, MySQL and SQL Server), tracking per-chunk commit status so syncs avoid inconsistencies and duplicate writes (capabilities).
Good to know
- Change capture covers PostgreSQL, MySQL and MariaDB, MongoDB and SQL Server. Oracle, Db2 and S3 sources load by full refresh or incremental runs, and output is Apache Iceberg or Parquet on storage you choose (connectors).
Bottom line: Pick OLake Go if you run PostgreSQL, MySQL, MariaDB, MongoDB or SQL Server and want Iceberg tables on storage you control (docs).
Managed or vendor-run
7. AWS DMS: moving databases into AWS

AWS DMS home page, October 2026.
At a glance
- Method: Log-based
- Price: Replication instance hours or Serverless DCU hours, plus storage. AWS's DMS pricing page lists no separate CDC fee for DMS tasks. For example, dms.t3.medium lists at $0.0745 an hour in us-east-1, on-demand, Single-AZ (AWS price list, published September 2026, read 8 October 2026)
AWS says DMS migrates databases with one-time moves or ongoing replication. A task can do a full load first and then switch to CDC. Under the hood, its CDC docs say it reads Oracle with LogMiner or a binary reader, SQL Server through Microsoft's CDC or replication, MySQL binary logs, PostgreSQL logical slots and the MongoDB oplog.
Where it fits
- AWS's docs list two-way tasks on six engines: Oracle, SQL Server, MySQL, PostgreSQL and two Aurora editions (CDC page).
- A task can be full load plus CDC, or CDC only for data already on the target (CDC page).
- Since DMS 3.5.1, a CDC-only task that starts from an SCN or timestamp can pick up open transactions through the
openTransactionWindowendpoint setting (CDC page). - For S3 targets, the docs say full-load and CDC files are written as CSV by default, with Apache Parquet as an option, and each CDC row starts with I, U or D to show how the row changed (AWS DMS S3 target docs).
- AWS lists pricing options for on-demand instances, Serverless and Database Savings Plans, and says on-demand is hourly with no long-term commitment (pricing page).
Where it falls short
- AWS's CDC page says DMS ongoing replication has no service-level agreement for latency, that it does not provide real-time replication, and that latency can rise to several minutes or longer.
- The two-way mode has no conflict resolution. Loopback prevention tracks only DML, not DDL, and tasks that use it cannot commit changes in batches, so
BatchApplyEnabledmust be false (CDC page). - Views can be migrated in full-load tasks only. A CDC-only task or a full load that goes on to CDC includes tables only (CDC page).
- PostgreSQL as a source does not support a custom CDC start time, and the CDC start point is fixed when the task is created, so a different one needs a new task. For Oracle, starting from an SCN or timestamp misses open transactions unless you use the 3.5.1 setting above (CDC page).
- Apache Iceberg is not among the target endpoints AWS's docs list for DMS, so Iceberg needs a separate step after the files land on S3.
- On an S3 target, DMS records no ALTER statement when a column is added, dropped or renamed and does not alter earlier records, and the docs say batch apply to S3 might lose data (S3 target docs).
8. Google Cloud Datastream: BigQuery on Google Cloud

Google Datastream home page, October 2026.
At a glance
- Method: Per source, such as the MySQL binary log
- Price: Per GiB processed; backfill free for 500 GiB a month, then $0.40 per GiB; a free CDC tier of 100 GiB a month applies only to AlloyDB and Spanner sources (Datastream pricing page, October 2026)
Datastream is a CDC and replication service on Google Cloud. Its sources are MySQL, Oracle, SQL Server and PostgreSQL, plus Spanner, MongoDB and Salesforce.
Where it fits
- The pricing page says there are no costs for running streams beyond data processed, an idle stream incurs no cost, and events Datastream reads but does not write to the destination are not counted.
- CDC costs are tiered, so the price per GB falls as usage rises. The page's worked example charges $2.00 per GiB for the first 2,500 GiB and $1.50 per GiB beyond that (pricing page).
- Google's docs say Iceberg tables in BigQuery keep data in customer-owned Cloud Storage buckets, in Iceberg table format with Parquet files (Iceberg destination).
- For a SQL Server source, Google documents two methods. The transaction logs method needs fewer resources and retrieves data faster, while the change tables method has lower throughput but fewer limitations and supports encrypted tables (Datastream SQL Server source docs).
Where it falls short
- The Iceberg destination is BigQuery-managed Iceberg tables in Cloud Storage, and Google says streaming to them is "supported only in the append-only write mode". Each table gets a
datastream_metadatacolumn, and in append-only mode its change type is INSERT for every row. - Setup needs the Cloud Storage bucket, BigQuery dataset and Datastream connection in the same region, and a BigQuery connection whose service account holds the
storage.adminrole on the bucket (Iceberg destination). - Google's docs describe no self-hosted option.
- For PostgreSQL, a stopped stream can leave log files on the source until the disk fills, so Google advises alerting on disk use (Datastream PostgreSQL source docs).
- Google says a processed byte is an internal representation of the source data and for most use cases can be 2 to 5 times larger than the actual data (pricing page).
- The pricing page says the first 500 GB of backfill each month is free, while a footnote calls it a one-time 500 GiB credit per billing account, so confirm which applies (pricing page).
- On the SQL Server transaction logs method, Transparent Data Encryption is not supported, column-level-encrypted data is replaced with NULL, and columns added after a stream is created are not replicated. Streams are limited to 10,000 tables (SQL Server source docs).
Check before you rely on it: ask Google for the expected delay on your source and size.

Google Cloud's Datastream Iceberg destination page, October 2026.
Run it yourself
9. Debezium: teams that already run Kafka

Debezium home page, October 2026.
At a glance
- Method: Log-based
- Price: Free licence (Apache 2.0); you pay for infrastructure and staff
This entry covers Debezium Server, which sends change events to the sinks listed in its docs, including Apache Iceberg.
Where it fits
- Its docs list connectors for MySQL, PostgreSQL, Oracle, MongoDB and more.
- The Debezium Server docs list sinks including Kinesis, Pub/Sub, Pulsar, Redis, Kafka, RabbitMQ, Event Hubs, JDBC and Apache Iceberg.
- The Iceberg sink lists upsert and append modes, offset and schema history storage in Iceberg, and automatic schema evolution. New columns are added by default (
allow-field-additionis true), and the default file format is Parquet (Debezium Server docs). - When event and key schema information is enabled, destination Iceberg tables are created automatically at first startup (Debezium Server docs).
- Offsets can be kept in a file, memory, a JDBC database or Redis, which suits deployments without Kafka (Debezium Server docs).
- The PostgreSQL connector reads through logical decoding with the pgoutput or decoderbufs plug-in. It takes an initial consistent snapshot on first start and can run a blocking snapshot of one table on demand.
Where it falls short
- You run it. The Apache Iceberg sink is community-maintained in a separate repository, and each Debezium Server instance runs one connector.
- The Iceberg sink's
upsertsetting is off by default, which means append-only mode. In upsert mode, deleted rows are kept and marked__deleted=trueunless you turnupsert-keep-deletesoff (Debezium Server docs). - The docs say upsert mode and automatic primary key detection depend on the flattened event structure, and without it the connector runs only in a more limited append-only mode (Debezium Server docs).
- The Server page gives no list of supported Iceberg catalog types. It passes any
debezium.sink.iceberg.*property to the Iceberg library (Debezium Server docs). - On PostgreSQL, logical decoding does not report DDL changes, and a table without a primary key produces only create events under the default replica identity (PostgreSQL connector).
- Unchanged TOAST (large) column values outside the replica identity are left out of update events and replaced by a placeholder, and the pgoutput plug-in does not capture values for generated columns (PostgreSQL connector).
10. Estuary: one managed platform for streaming and batch

Estuary Flow home page, October 2026.
At a glance
- Method: Log-based
- Price: $0.50 per GB moved plus $100 a month for each of the first 6 connector instances; free tier of 10 GB a month and 2 instances (Estuary pricing, October 2026)
Estuary's docs list capture connectors for PostgreSQL, MySQL, MariaDB, Oracle and SQL Server. Each source and each destination counts as a billed instance.
Where it fits
- Estuary says it does streaming and batch in one platform, in public cloud, private cloud or your own cloud. We have not tested that claim.
- The pricing page says it offers 200+ source and destination connectors, and its Cloud card lists "Millisecond latency or batch, no extra charge" (a vendor claim we did not test).
- Per the pricing FAQ, a new pipeline runs a historical backfill and then switches to real-time CDC, and backfilling can be disabled or scoped for large datasets (pricing page).
- The free Developer plan covers 10 GB a month and 2 connector instances, and the Cloud plan starts with a 30-day free trial that needs no credit card (pricing page).
- The Enterprise column lists SOC 2 and HIPAA reports, single sign-on, custom SLA terms, and private and bring-your-own-cloud deployments on annual contracts (pricing page).
- Its Iceberg connector docs say it merges updates into Iceberg tables by orchestrating Spark jobs, supports AWS Glue through the Glue Iceberg REST endpoint, and can write to S3 table buckets.
Where it falls short
- Its Iceberg connector needs an Iceberg REST catalog (a catalog with a standard web interface) on Amazon S3, an AWS EMR Serverless Spark application and an S3 staging bucket. Catalogs on GCP or Azure are planned, not supported (Iceberg connector docs).
- The connector also needs a dedicated IAM role for running jobs on EMR Serverless, and the docs mark REST catalogs other than Glue as Beta (Iceberg connector docs).
- Hard Delete is off by default (soft-delete), so items deleted in the source are not deleted from the destination until you enable it. Nested types are not supported, and array and object fields land as string columns (Iceberg connector docs).
- Automatic compaction through Glue table optimizers is an option that defaults to false, and querying S3 table buckets with Athena needs lowercase column names (Iceberg connector docs).
- Every source and destination is billed, so the cost climbs with every pipeline you add. The first 6 connector instances cost $100 a month each and extra ones $50, on top of $0.50 per GB (pricing page).
- The pricing page's own calculator example (800 GB moved, 2 connector instances) shows $1,000 a month, which is more than $0.50 per GB plus two $100 instances adds up to. Estuary's blog explains that data is metered at both ingestion and materialization, so ask how your data would be metered.

Estuary's pricing page, October 2026.
11. Airbyte: scheduled syncs and a long connector list

Airbyte home page, October 2026.
At a glance
- Method: Log-based CDC on scheduled syncs
- Price: Core free; Cloud Standard starts at $20 a month with 5 credits included and extra credits at $5 each (Airbyte pricing, October 2026)
Airbyte's CDC docs say syncs are scheduled and CDC sources are not treated as infinite streams. In plain terms, it runs in batches, not as a live stream.
Where it fits
- Airbyte's docs list a self-hosted Core edition, and Iceberg destinations for S3 and GCS that support REST, Glue, Nessie, Polaris and BigLake catalogs.
- Its CDC page lists Postgres, MySQL, SQL Server and MongoDB among its current CDC support. The first sync takes a snapshot with a SELECT, which is effectively a full refresh, and later syncs read the logs from the previous position.
- CDC records carry metadata columns that begin with
_ab_cdc_, and the columns vary per source (CDC page). - Its docs say the S3 Data Lake destination writes the Iceberg table format to S3 or S3-compatible storage. Deduplication is merge-on-read: Airbyte maps the stream's primary keys to Iceberg identifier columns, and an upsert is an equality-based delete followed by an insert.
- The pricing page lists 700+ connectors on all four cloud plans, a 14-day free trial with 400 credits, and syncs as often as every 5 minutes on Pro and Enterprise Flex.
Where it falls short
- CDC limits in the docs: views are not supported, TRUNCATE and table-structure (ALTER) changes are not picked up from the logs, and new tables need a refresh (CDC page).
- CDC incremental is only supported for tables with primary keys for most sources, and the docs say to run syncs often enough to consume the logs that are generated (CDC page).
- Cloud Standard syncs at most hourly, and Plus every 15 minutes (pricing page).
- The S3 Data Lake connector never rewrites existing Iceberg data files, so it handles only a few source schema changes: adding or removing a column, widening a column and changing the primary key (S3 Data Lake docs).
- Objects and unions are written as string columns of serialized JSON, and column names are written as they appear in the source by default, which some query engines cannot read through a Glue catalog. An option added in September 2026 lowercases them (S3 Data Lake docs).
- The docs caution that if compaction runs at the same time as a truncate refresh sync, it deletes files from the current generation and causes data loss (S3 Data Lake docs).
12. Artie: managed CDC with a published monthly plan

Artie home page, October 2026.
At a glance
- Method: Log-based
- Price: Free to 1M rows a month and 2 pipelines; Growth from $500 a month billed annually; Enterprise custom (Artie pricing, October 2026)
Artie's architecture page says it reads the source transaction log and buffers changes in an internal Kafka. It then writes with upserts, which insert a row or update it if it exists. Its sources include PostgreSQL, MySQL and MongoDB, with Oracle and SQL Server on Enterprise.
Where it fits
- A free plan and a published Growth price.
- The Free plan is $0 a month "forever", with up to 1M billable rows and 2 active pipelines. Backfills are always free and never count toward billable rows (Artie pricing).
- Growth is usage-based, starting at $500 a month on an annual plan or $600 month to month, and counts billable rows after the initial backfill (Artie pricing).
- The pricing page lists sub-minute latency and exactly-once delivery on the Free plan. These are vendor claims we did not test.
- The architecture page says it subscribes to the source transaction log, buffers each change in an internal Kafka queue, and writes with idempotent upserts or merges. Its Cloud option runs the control and data planes in Artie's cloud, while BYOC runs the data plane in your cloud account.
Where it falls short
- The pricing page lists Iceberg, and Oracle and SQL Server log replication, only under Enterprise (Artie pricing).
- BYOC and an uptime SLA are also listed under Enterprise only, and PrivateLink on Growth costs $500 a month per connection (Artie pricing).
- The Free plan caps at 1M billable rows a month and 2 active pipelines, and Growth cost follows billable rows (Artie pricing).
- Artie's pricing page and docs state no licence, so we do not call it open source (Artie pricing).

Artie's pricing page, October 2026.
Which data replication tool should you pick for your job?
| Your job | Look at first | Rule out when |
|---|---|---|
| Standby or read copy | Native replication | The target is not the same database family |
| Database to a cloud warehouse | Fivetran, Estuary, Artie or Airbyte | You must self-host on a small budget (private options sit on higher plans, except Airbyte Core) |
| BigQuery on Google Cloud | Datastream | You need updates and deletes in Iceberg |
| Iceberg lake, self-hosted | Debezium Server or | Debezium: you need a vendor-supported sink |
| Iceberg with a vendor in charge | Qlik Open Lakehouse or Fivetran | Your query engine needs position deletes (Fivetran) or you will not use Talend Cloud (Qlik) |
| Large Oracle or mainframe estate | GoldenGate, Qlik Replicate or Striim | Iceberg must land in a plain S3 bucket (Striim: Iceberg Writer is GCS only, S3 Tables Writer needs S3 Tables), or you want a public price |
| One-off move into AWS | AWS DMS | You need Iceberg directly, or a promised latency |
| Two-way copies | GoldenGate, or DMS | Both sides edit the same rows (DMS has no conflict rules) |
Which data replication tool fits you?
Question 1 of 6
What is the copy for?
Replication means four different jobs. Pick the closest one.
What Happens When the Source Table Changes
| Tool or approach | What its docs say about schema changes |
|---|---|
| PostgreSQL logical replication | Does not copy schema changes |
| Airbyte CDC | TRUNCATE and table-structure (ALTER) changes are not picked up from the logs |
| Fivetran | A full table re-sync counts as historical Monthly Active Rows, except re-syncs from adding a column, which are free (Fivetran usage docs) |
| Adds, drops and renames are detected; widening type changes are documented | |
| Striim Iceberg Writer | Supports schema evolution |
| Debezium Server with the community Iceberg sink | New fields and wider types work; full schema evolution does not, and a dropped column stays with nulls (Debezium community Iceberg sink docs) |
Sources are the PostgreSQL, Airbyte, Fivetran, Striim and Debezium sink docs, read on 8 October 2026, and OLake Go's schema page. Ask every vendor to show you what happens when you add a column and when you narrow a type.
What to check before you choose
1. The job. Failover, reports, a lake and a migration all need different tools.
2. The delay you will see. Ask for the real lag. AWS's docs say DMS has no service-level agreement for CDC latency, and Airbyte runs on a schedule.
3. The first copy. Most tools copy existing rows first and then switch to changes. Test an interrupted snapshot on your biggest table.
4. Deletes and schema changes. Timestamp-based copies miss hard deletes, and the table above shows how schema changes are handled.
5. Log growth on the source. The PostgreSQL, Datastream and DMS docs all warn that a stopped slot keeps log files on the source disk. Alert on disk use before you go live.

PostgreSQL logical decoding documentation, October 2026.
6. How the copy is checked. AWS lists a checksum consistency check as the last stage of replication. Ask each vendor how it proves the two sides match.
A small test for any finalist
We have not run this test on these tools.
- Create a table with three rows: (1, "a"), (2, "b") and (3, "c"). Start the copy.
- Insert (4, "d"), update row 2 to "b1" and then to "b2", and delete row 3.
- Add a column, then stop the tool mid-run and restart it.
- Expected result on a current-state target: (1, "a"), (2, "b2") and (4, "d"), with no row 3 and no duplicates. Append-only targets, such as Datastream's Iceberg tables, show each change as its own record.
- Finally, read the bill after a week of real change volume.
Q1. What are data replication tools?
Q2. What is the difference between data replication and backup?
Q3. What is the difference between replication and change data capture?
Q4. Is data replication real time?
Q5. What are the best free or open-source data replication tools?
Q6. Can I replicate in both directions?
Q7. Does replication slow down my source database?
Q8. What happens to my copy when I add a column?
Q9. Which tools write Apache Iceberg?
Conclusion
Start with the job, not the tool list. If Apache Iceberg is the goal, check the catalog, the cloud and whether updates and deletes work. Then run the small test above on your own data before you commit.


