Connecting to On-Prem SQL Server through Change Data Capture (ADF) Issue

Jason Sherbondy 0 Reputation points
2025-06-04T21:17:53.26+00:00

So I have been trying to get CDC working for the past two days but can't seem to get it to connect to my on-premise SQL Server as it seems to have issues using self hosted integration runtime inside the CDC wizard.

I am trying to do incremental loads from my on-premise SQL Server to Azure SQL database so that 5 tables will keep in sync with the production database (OLTP) so that I can build out my OLAP system but can't get the first step.

Could someone please give me some clarification on what is going on here and the best way to keep my tables in sync between these two systems.

Azure Data Factory
Azure Data Factory
An Azure service for ingesting, preparing, and transforming data at scale.
{count} votes

2 answers

Sort by: Most helpful
  1. Smaran Thoomu 32,530 Reputation points Microsoft External Staff Moderator
    2025-06-23T08:12:36.64+00:00

    Hi @Jason Sherbondy
    We have reviewed the scenario offline, and I want to confirm that your understanding is correct - currently, the CDC (Preview) wizard in Azure Data Factory does not support connecting to on-premises SQL Server via Self-hosted Integration Runtime (SHIR). This is a known limitation of the preview version, and there is no supported workaround within the CDC wizard at this time.

    1. The SHIR option being grayed out in the CDC wizard UI is expected behavior when targeting on-prem SQL sources.
    2. Even when SHIR is properly installed and registered, the CDC UI does not expose support for on-prem SQL via SHIR in its current preview state.

    You can still achieve CDC-like functionality using the manual CDC pattern, which includes:

    • Enabling CDC on your SQL Server tables.
    • Using stored procedures like cdc.fn_cdc_get_all_changes_<capture_instance>().
    • Designing ADF pipelines using Lookup + Copy activities or Mapping Data Flows.
    • Optionally, maintaining a high-watermark column (e.g., LastModifiedDate) for incremental loads.

    This approach allows you to maintain sync between on-prem SQL and Azure SQL DB even without wizard-based CDC.

    We understand this is a key use case, and if support for SHIR in the CDC wizard becomes available in the future, we’ll make sure to follow up.

    Hope this helps. Do let us know if you any further queries.


    If this answers your query, do click Accept Answer and Yes for was this answer helpful. And, if you have any further query do let us know.

    0 comments No comments

  2. Jason Sherbondy 0 Reputation points
    2025-06-23T16:42:52.7766667+00:00

    Thank you for clarifying that the CDC (Preview) function does not work as of yet for my use case.

    A couple of follow up items about the approach you suggested using cdc.fn_cdc_get_all_changes_<capture_instance>() as I am vaguely aware of this but how will I scale it for keeping 100+ tables in-sync including INSERT, UPDATE and DETELES.

    On a few forums, I also saw people suggest transaction replication from on premise to Azure SQL Database. What do you think of this approach?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.