SqlServer2016 快照同步

公司ERP产品有多个客户,每个客户都有自己的数据库实例。

现在公司实现一个数据分析统计平台,需要从每个客户的数据库实例中同步数据到数据分析服务器。

要求实时性不高,数据每天凌晨单向同步一次。

SQL Server 2016 快照复制(Snapshot Replication)是为我们量身定制的唯一最优解。

完美满足所有条件:

  • 单向同步
  • 一天一次定时
  • 同步后目标=源数据
  • 性能极好
  • 完全不影响主库
  • 最易部署、最易维护
  • 零代码、零脚本、零开发

3 步极速部署(10 分钟搞定)

前提条件

  1. 源库和目标库网络互通
  2. 源表必须有主键(所有业务表都有)
  3. 两台服务器都启动 SQL Server 代理(必须启动)

第一步:配置发布(源数据库)

  1. 打开 SSMS → 找到 复制 → 右键 新建 → 发布
  2. 选择源数据库 → 下一步
  3. 选择 快照发布 → 下一步
  4. 勾选要同步的(可多选)→ 下一步
  5. 关键:创建快照计划
    • 选择 每天 02:00 执行(避开业务时间)
  6. 勾选 立即创建快照(初始化用)
  7. 设置快照文件夹(开启压缩,跨网络更快)
  8. 安全账户选择 SQL 账号 → 完成

第二步:配置订阅(目标数据库)

  1. 右键 订阅 → 新建订阅
  2. 选择 查找 SQL Server 发布服务器 → 输入源服务器SQLServer的IP,端口,账号密码 → 连接
  3. 选择刚才创建的发布 → 下一步
  4. 选择 推送订阅(性能最好、最省心)
  5. 选择 点击 添加订阅服务器 ,填写目标服务器IP,端口、账号密码,把目标服务器添加到订阅服务器列表中。这里关键一点是:源服务器和目标服务器不是同一台服务器的时候,填写的目标服务器IP端口要求必须是源服务器可达的,不能是内网IP或主机名等。
  6. 选择 勾选 订阅服务器, 选择 目标库 → 下一步
  7. 选择 订阅服务器代理 后面的三个点,上面输入源服务器的 主机名\用户名、登录密码;连接到订阅服务器设置目标服务器数据库账号、密码。
  8. 一直 下一步 到完成。

第三步:验证

等待第一次同步完成
目标库数据 = 源库数据,完全一致