需求:客户环境有两个机房,一个自建,一个云端,如何将自建的SQL Server数据库实时同步到云端的SQL Server数据库
步骤:
- 首先,确认两个服务器均开放了135,445,1433,1434出入站端口
本地hosts添加对端服务器的主机名和IP - 以sa身份连接自建SQL Server服务器,展开复制-本地发布,右击本地发布,选择【新建发布】,点下一步
- 选择要发布的数据库,portaldb,点下一步
- 选择事务发布,点下一步
- 选择要发布的表、存储过程、视图等,然后点下一步
- 点击表前面的复选框,可以批量选中:
- 系统提示在订阅服务器上需要包含视图和索引视图引用的表,
- 如果要筛选数据,在筛选表行时,可以按时间或字段值进行筛选,同步部分而非全量数据
- 选择立即创建快照,点下一步
- 代理安全性,必须设置
- 快照代理安全性选择【在SQL Server代理账户下运行】,
连接到发布服务器时,【使用以下SQL Server登录名】输入账号密码后点下一步 - 确认代理安全性和连接到发布服务器都通过代理账户方式:
- 勾选【创建发布】点下一步
- 定义发布名称,点【完成】
- 查看同步进度
- 正在添加项目
- 正在启动快照代理
- 本地发布下面右击刷新,看到列出了这个发布的数据库源
接下来的操作都是连接到订阅数据库操作 - 本地订阅上右击新建订阅,点下一步
- 选择发布服务器和源数据库,
注意要填写【主机名】,不是填写IP地址。 - 选择【在分发服务器上运行所有代理(推送订阅)】
- 添加订阅服务器和订阅数据库,点下一步
- 设置分发代理安全性
- 设置代理安全性,以及如何连接到订阅服务器
- 同步计划,选【连续运行】
- 选择立即初始化订阅
- 在复制-本地发布,找到已发布的源数据库,右击选择”查看快照代理状态”
- 启动复制监视器,查看同步状态
- 复制监视器窗口左侧,双击数据源,可以查看所有订阅服务器的同步状态,
包括滞后时间和上次同步时间。
值得一提的是:
在第1步之前,在目标服务器必须先完整恢复源服务器数据的全量备份,并且安装SQL复制组件,重启SQL服务器
第5步选择发布表的时候,每个要发布的表都要有主键,且主键的值必须唯一。
SQL代理要设置成开机自启,避免Windows打补丁后同步中断:
以下计划,仅供参考: