Skip to main content
This connector is in Beta. For production workloads on SQL Server CDC, use the SQL Server Source.
This connector streams inserts, updates and deletes from SQL Server by reading the transaction log directly (sys.fn_dblog, and log backups through sys.fn_dump_dblog). Unlike the SQL Server Source, it does not need SQL Server CDC or its change tables. Any base table can be captured. Its events and topics have the same shape as the CDC connector’s: <prefix>.<database>.<schema>.<table>, with one data model per table.

Compatible versions

Prerequisites

  • The database in the FULL or BULK_LOGGED recovery model. Under SIMPLE, the log is truncated at every checkpoint and nothing can be read from it:
  • A login with sysadmin, or db_owner on the database plus VIEW SERVER STATE.
  • A primary key on each captured table, or a unique index over NOT NULL columns. Without one, a target has no key to apply updates and deletes by.
The credential check lists every prerequisite that is not met in one message, each with the statement that fixes it.

Reading log backups (optional)

By default the connector reads the active log only. If a log record is truncated before the connector reads it (for example, after a log backup during an outage), the connector stops with an error rather than skipping changes. To let it recover those records, set Log backup path to the directory or UNC share where the database’s .trn log backups are written. Enter the path as the SQL Server instance sees it: the backups are read on the server, not by Popsink. The check then confirms that:
  • at least one log backup of the database is recorded in msdb;
  • the latest one was written under that path;
  • the path is a directory the instance can reach.

Configuration

Keep Enable Initial Load on. No backfill is available for this source, so with it off the existing rows are never replicated, only the changes made after the connector starts.

Connecting through an SSH Tunnel

If the database is only reachable through a bastion host, enable SSH Tunnel and provide: The Host and Port above stay as the database is addressed from the bastion. For key generation, bastion hardening and the other connectivity options (IPsec VPN, Tailscale), see Tunnels and private connectivity.