The idea
What mirroring actually is
Point Fabric at a supported database and it keeps a copy in OneLake, seconds behind the source.
No pipeline to author, no schedule to miss, no extract query hammering production. Fabric reads the change stream and merges it into Delta tables.
- A copy, not a link. The data lands in OneLake, in the open Delta format.
- Continuous. Inserts, updates and deletes keep flowing after the first snapshot.
- Read-only. You change the source; the mirror follows.
SQL Server’s old database mirroring was a failover standby. Fabric mirroring is one-way analytics replication: no failover, no writes, no second primary.
The path
How a change gets there
- Snapshot first. Fabric copies the selected tables once, as the baseline for everything that follows.
- Then the change stream. Change data capture on SQL Server 2016–2022, the transaction log on 2025, a built-in feed on Azure SQL Database.
- Files land in OneLake. The source publishes per-table change files into a landing zone.
- A replicator merges them. It folds inserts, updates and deletes into the target Delta table, as often as every 15 seconds.
Fifteen seconds is a floor, not a promise. Distance between regions, change volume, network bandwidth and gateway resources all add time.
Three flavours
Not every mirror copies data
Fabric chooses the flavour for you, based on the source you pick. Only open mirroring needs code.
The other side
What lands in Fabric
Mirrored tables behave like any other Delta table in OneLake, which is the whole point.
- SQL analytics endpoint. Read-only T-SQL: query, create views and procedures, but never write.
- Power BI in Direct Lake mode. Reports read the Delta files directly, with no import and no refresh schedule.
- Spark and notebooks. The same files, open format, no second copy.
- Cross-database joins. Three-part names let one query span a mirrored database and a warehouse.
- Sharing. Grant access to the mirrored database without opening the whole workspace.
The list
What you can mirror
| Source | Kind | Status |
|---|---|---|
| Azure SQL Database | Database | Generally available |
| Azure SQL Managed Instance | Database | Generally available |
| SQL Server 2016 to 2025 | Database | Generally available |
| Azure Database for PostgreSQL | Database | Generally available |
| Azure Database for MySQL | Database | Preview |
| Azure Cosmos DB | Database | Generally available |
| Snowflake | Database and metadata | Generally available |
| Google BigQuery | Database | Generally available |
| Oracle | Database | Generally available |
| SAP Datasphere | Database | Generally available |
| Azure Databricks | Metadata only | Generally available |
| SharePoint list | Database and metadata | Preview |
| Your own application | Open mirroring | Generally available |
Status as of the Microsoft documentation, August 2026. Preview features can change or disappear.
The fine print
The rules that bite
- A primary key is the safe bet. SQL Server 2016–2022 cannot mirror a table without one. Azure SQL Database lifted that rule in April 2025.
- 1,000 tables per database. “Mirror all” takes the first thousand alphabetically and silently leaves the rest.
- Schema changes hurt. SQL Server 2025 resnapshots the changed table; 2016–2022 stops until CDC is re-enabled.
- Large objects shrink. On SQL Server, LOB columns over 1 MB are truncated to 1 MB.
- Security does not travel. Row-level security runs, but permissions, object grants and dynamic masking are not propagated to OneLake.
- One workspace, one mirror. A database already mirrored elsewhere cannot be mirrored again. On Azure SQL Database, pre-enabled CDC also blocks it.
- SQL Server 2025 is a different path. It needs Azure Arc and runs on-premises only for now: not on Azure VMs, not on Linux.
- On-prem needs a gateway. SQL Server behind a firewall uses an on-premises or VNet data gateway.
- Availability groups: primary only. Mirroring follows the primary replica, not a failover cluster instance.
The bill
What it costs, and what it is not
Replication is free. Querying is not.
- Free storage. One terabyte of mirroring storage per capacity unit: an F64 gets 64 TB.
- Free replication compute. Background mirroring does not consume capacity units.
- Paid queries. SQL, Power BI and Spark read the data at normal rates, and storage above the allowance is billed.
- Capacity must run. A paused or deleted capacity stops replication entirely.
- Not high availability. There is no failover and no write path. Keep your backups and your replicas.
- Not transformation. Tables arrive shaped like the source; the modelling is still your job.
- Not a shortcut. A shortcut reads data in place; a mirror keeps a copy in OneLake.