超详细!! sql server 同步数据库 发布 订阅 跨网段 无公网ip 常见问题
问题描述
主机1:发布端
阿里云服务器--有公网ip
主机2:订阅端
笔记本--无公网ip
数据量很小,主要是熟悉发布订阅的操作流程。
主机2仅仅作为主机1的本地备份,要求修改云服务器上数据后,能通过sql server的发布订阅功能将本地数据同步。
底下没有一步一步介绍,一步一步的,可以看下面这篇
upload/201910241703517566.png" alt="" width="568" style="border: 0px; max-width: 900px; height: auto;" />
2.要把两台主机的sql manager中的sql server服务中的sql server代理打开(原本是禁用状态)
3.远端服务器要开启sql server用户名密码登录方式,并且设置好代理账号和密码
到这一步,应该可以在笔记本的sql server通过ip地址,和刚刚设置的代理账户和密码登录进云服务器了。
--------------------------------------------------------------------------------------
问题2
发布和订阅流程
要首先在云端sql server客户端的
复制---发布---新建发布
1.选择哪种发布方式
这点可以自己查询四种发布的区别
要注意:事务发布时,被发布的表要有主键
2.如何连接发布端
网上一般推荐是在云端和本地端都新建一个用户名,密码一样的windows账户,然后这里选择在windows账户下运行。
我这里使用sql server登录名
这里注意---登录名是sql server的登录名(就是一般是sa的那个)
-------------------------
以上是发布端
-------------------------
订阅端
1.使用别名
在这一步选择发布服务器时,要使用实际的服务器名称(使用windows方式登录时的名称),不能使用ip地址。
这里要在订阅服务器中添加发布服务器的别名,具体操作看下面
upload/201910241703542755.png" alt="" width="630" style="border: 0px; max-width: 900px; height: auto;" />
这里我有个不懂的问题,之后会讲到。
3.连接到分发服务器
这里注意,要填写分发服务器的sql server登录名。
是登录名,sa那个
登录名不是服务器名,这点切记。
到这一步时,查看一下订阅服务器的同步状态
看看是否打钩了----这代表前面的设置正确,订阅服务器能访问到发布端。
本人一开始因为设置时填写错了用户名,在查看同步状态这里还是报错的。
--------------------------------------------------------------------------------
接下来,可以看看订阅服务器的数据是不是被同步了,如未同步,看看订阅端的作业历史记录
有可能还是报错
但是这个报错信息是什么玩意嘛???
“复制代理遇到问题。有关详细信息,请参阅上一个作业步骤历史记录消息或复制监视器”
原来要在发布端找具体错误信息。。。
启动发布端的复制监视器
在左侧选好具体的发布后,双击右侧中所有订阅中的错误的订阅,查看具体报错