1.资源准备,两台异地机器:
机器 | 操作系统 | SqlServer 版本 | 机器名称 | IP |
---|---|---|---|---|
上海A区某机房的 机器 A | 操作系统-Windows Server 2019 Datacenter10.0 | SqlServer2017 | WIN-A | 162 开头的外网IP-A |
上海B区某机房的 机器B | 操作系统-Windows Server 2019 Datacenter10.0 | SqlServer2017 | WIN-B | 180开头的外网IP-B |
2.查询两台SqlServer 的 ServerName必须和 计算机的机器名 保持一致
查询SqlServer的ServerName 语句如下:
SELECT @@SERVERNAME
3.在 Sql Server Configuration Manager 中设置别名(两台机器都要做相应的设置),示例如下:
4.开启相应的SqlServer服务(两台机器一样),如下图:
5.重启SqlServer 服务(两台设置完 3 步骤,确认好 4步骤 重启SqlServer服务)。
6.测试两台SqlServer服务器用机器名是否可以正常登录,理论上要可以,示例如下:
7.在 发布服务器WIN-A 上进行发布,在订阅服务器WIN-B 上进行订阅即可。
这个步骤,网上有非常多的示例,此处不赘述(推荐一篇https://my.oschina.net/u/4286300/blog/3680304)
或者根据SqlServer的提示步骤按照自己的需求设置,一路下一步即可。
附录: 在此过程中遇到的问题记录:
Question 1 如下图:
解决: 给图中提示的目录 给到相应的创建权限即可,如果不知道给那个用户,就添加everyone 用户。
Question 2 如下图:
解决:把表(OP_HOUSE_LCL_CONTAINER1) 删掉重新建,如果表删除不掉或者也无法查询,考虑重新建表。
这种我花了比较多的时间,没找到能直接解决上图错误的方法,再提供一张图如下供参考: