问题描述html
主机1:发布端sql
阿里云服务器--有公网ipwindows
主机2:订阅端服务器
笔记本--无公网ip网络
数据量很小,主要是熟悉发布订阅的操做流程。阿里云
主机2仅仅做为主机1的本地备份,要求修改云服务器上数据后,能经过sql server的发布订阅功能将本地数据同步。spa
底下没有一步一步介绍,一步一步的,能够看下面这篇操作系统
https://blog.csdn.net/u012861467/article/details/76411216.net
----------------------------------------------------------------------------------------------3d
问题1
阿里云的sql server配置好后,没法使用本地sql server客户端远程登陆。
检查如下几点
1.要在阿里云的控制台中的防火墙,打开阿里云的1433端口(默认的sql server访问端口)
这点很重要,好多教程里没有提到!!!
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地址。
这里要在订阅服务器中添加发布服务器的别名,具体操做看下面
https://blog.csdn.net/u010457730/article/details/97276313
2.推送订阅仍是请求订阅
这里我有个不懂的问题,以后会讲到。
3.链接到分发服务器
这里注意,要填写分发服务器的sql server登陆名。
是登陆名,sa那个
登陆名不是服务器名,这点切记。
到这一步时,查看一下订阅服务器的同步状态
看看是否打钩了----这表明前面的设置正确,订阅服务器能访问到发布端。
本人一开始由于设置时填写错了用户名,在查看同步状态这里仍是报错的。
--------------------------------------------------------------------------------
接下来,能够看看订阅服务器的数据是否是被同步了,如未同步,看看订阅端的做业历史记录
有可能仍是报错
可是这个报错信息是什么玩意嘛???
“复制代理遇到问题。有关详细信息,请参阅上一个做业步骤历史记录消息或复制监视器”
原来要在发布端找具体错误信息。。。
启动发布端的复制监视器
在左侧选好具体的发布后,双击右侧中全部订阅中的错误的订阅,查看具体报错
真相大白--
因为出现操做系统错误 3,进程没法读取文件D:\XXXX\X.pre
缘由原来是--这个路径是发布端存放快照文件的位置,可是因为不是网络文件夹,不能被访问。
这里提供一种简单的解决办法
参照这位的作法
https://www.cnblogs.com/mrray/archive/2011/03/17/1987123.html
直接把发布端的快照文件夹--名称为repldata的拷贝到订阅端的某个文件位置
再在订阅端修改快照位置
复制--本地订阅---具体的订阅---右键---属性
把快照文件夹位置修改成本地的那个位置。
很神奇的是,只须要修改一次就好。
到这一步,个人问题就解决了,如下是几点问题和思考
1.坑不少,但多查询相关资料,老是可以解决的。这个信心是一次次解决问题中锻炼出来的。
2.自身理论基础欠缺时,一些配置性操做就容易出问题。好比说不了解发布订阅的具体机制,就很难想到出现快照文件夹没法访问这个问题。
3.个人情景比较特殊,一台有公网ip,一台没有。我在网上看到的状况,通常要么是局域网,要么两台主机都是有公网ip的(这意味着发布端,订阅端都能用惟一的ip地址访问对方)。因此我一直怀疑我这种网络结构从原理上就不能使用发布订阅这种方式(由于发布端没法“找到”订阅端)。这也是我在配置中选择了从订阅端运行代理,由于订阅端是确定能“找到”有公网ip的发布端的。这个问题还要细研究。
4.这四种发布-订阅的方式有什么区别?快照文件夹是什么原理?这是两个须要搞清楚的问题。
5.sql server这个这么常见的功能为何如此多的坑。。。可能仍是我太菜了。但起码这个问题是解决了,我又成长了一点点。