You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不同Azure SQL Server的SQL数据库间实现单向数据同步

单向同步Azure SQL数据库(DB1→DB2)的替代方案

方案1:Azure SQL 数据同步(Data Sync)单向配置

虽然你想避开Data Factory,但Azure SQL自带的**数据同步(Data Sync)**完全适配你的需求:

  • 仅同步DB1的变更到DB2,DB2新增的本地表或修改不会反向影响DB1
  • 支持增量同步,可设置实时或定时同步频率
  • 配置要点:
    • 在Azure门户创建同步组,明确同步方向为DB1→DB2
    • 选择需要同步的表(可按需指定,后续也能调整)
    • 设定同步周期,支持实时同步选项

方案2:事务复制(Transactional Replication)

这是SQL Server原生的单向同步方案,兼容Azure SQL:

  • 配置发布端(DB1)和订阅端(DB2),仅由发布端向订阅端推送变更
  • DB2可自由新增本地表,不会对DB1产生任何影响
  • 核心操作示例(T-SQL):
    -- 在DB1创建发布
    EXEC sp_addpublication @publication = N'DB1_Publication', @status = N'active';
    -- 添加需要同步的表
    EXEC sp_addarticle @publication = N'DB1_Publication', @article = N'Table1', @source_object = N'Table1';
    -- 在DB2创建推送订阅
    EXEC sp_addsubscription @publication = N'DB1_Publication', @subscriber = N'AzureSQLServer2', @destination_db = N'DB2', @subscription_type = N'Push';
    

方案3:变更数据捕获(CDC)+ 自定义同步逻辑

如果需要更灵活的控制,可结合CDC和自定义脚本实现:

  • 在DB1上启用变更数据捕获,捕获指定表的增删改操作日志
  • 编写PowerShell、Python或Azure Function脚本,定期读取CDC日志并同步到DB2
  • DB2的本地操作完全独立,不会反向同步到DB1
  • 启用CDC的命令示例:
    -- 为DB1开启CDC
    EXEC sys.sp_cdc_enable_db;
    -- 为目标表开启CDC
    EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'Table1', @role_name = NULL;
    

方案对比

方案复杂度实时性维护成本适用场景
Azure SQL数据同步低准实时/定时低快速配置,无需代码开发
事务复制中实时中要求严格事务一致性的场景
CDC+自定义脚本高可自定义频率高需要高度定制同步逻辑的场景

内容的提问来源于stack exchange,提问作者Tasnim Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:04:51