需求:客户环境有两个机房,一个自建,一个云端,如何将自建的SQL Server数据库实时同步到云端的SQL Server数据库

步骤:

  1. 首先,确认两个服务器均开放了135,445,1433,1434出入站端口
    本地hosts添加对端服务器的主机名和IP
  2. 以sa身份连接自建SQL Server服务器,展开复制-本地发布,右击本地发布,选择【新建发布】,点下一步
  3. 选择要发布的数据库,portaldb,点下一步
  4. 选择事务发布,点下一步
  5. 选择要发布的表、存储过程、视图等,然后点下一步

  6. 点击表前面的复选框,可以批量选中:
  7. 系统提示在订阅服务器上需要包含视图和索引视图引用的表,

  8. 如果要筛选数据,在筛选表行时,可以按时间或字段值进行筛选,同步部分而非全量数据

  9. 选择立即创建快照,点下一步


  10. 代理安全性,必须设置

  11. 快照代理安全性选择【在SQL Server代理账户下运行】,
    连接到发布服务器时,【使用以下SQL Server登录名】输入账号密码后点下一步
  12. 确认代理安全性和连接到发布服务器都通过代理账户方式:
  13. 勾选【创建发布】点下一步

  14. 定义发布名称,点【完成】

  15. 查看同步进度
  16. 正在添加项目
  17. 正在启动快照代理
  18. 本地发布下面右击刷新,看到列出了这个发布的数据库源

    接下来的操作都是连接到订阅数据库操作
  19. 本地订阅上右击新建订阅,点下一步
  20. 选择发布服务器和源数据库,
    注意要填写【主机名】,不是填写IP地址。
  21. 选择【在分发服务器上运行所有代理(推送订阅)】
  22. 添加订阅服务器和订阅数据库,点下一步
  23. 设置分发代理安全性
  24. 设置代理安全性,以及如何连接到订阅服务器
  25. 同步计划,选【连续运行】
  26. 选择立即初始化订阅
  27. 在复制-本地发布,找到已发布的源数据库,右击选择”查看快照代理状态”


  28. 启动复制监视器,查看同步状态

  29. 复制监视器窗口左侧,双击数据源,可以查看所有订阅服务器的同步状态,
    包括滞后时间和上次同步时间。


值得一提的是:

在第1步之前,在目标服务器必须先完整恢复源服务器数据的全量备份,并且安装SQL复制组件,重启SQL服务器
第5步选择发布表的时候,每个要发布的表都要有主键,且主键的值必须唯一。

SQL代理要设置成开机自启,避免Windows打补丁后同步中断:

以下计划,仅供参考: