Sql Server【发布订阅】功能实践

欢欢欢欢 发表于 2019-4-15 17:51

需要使用另外一个数据库的数据,又都在同一个Sql Server实例上,就使用了Sql Server的【发布订阅】功能。

具体操作步骤:摸着里

一通操作之后服务并不能使用,数据没有同步过来。右键 “查看快照代理状态”发现一直在报错: 对路径“”的访问被拒绝。百思不得其解!!

Sql Server发布过程中遇到的问题

百度之,找到了答案:使用SQL Server发布数据库快照的配置中,如果你选择了使用SQL Server代理,而SQL Server代理服务使用的登陆身份不具有对存放快照文件位置的读写权限时,就会出现该错误。

解决方法:在服务中找到(SQL Server代理)服务,把服务的运行账户改成本地系统账户。问题解决!!

解决细节摸着里

 

后记:

1,被订阅的表可以新增字段,但是不能修改或删除字段。

2,【发布订阅】应该是被设置在了数据库上,不会随着软件的重装而消失。

3,需要启动Sql Server代理,否则无法正常使用。

---------------------------------------------------------------------------

这个功能不是很常用,一段时间之后发现又失败了!!!

右键,选择选择“重新初始化所有订阅”,提示报错(有报错就好说):无法初始化一项或多项支持自动初始化的订阅。百度之,找到了一个说法,再对比自己的情况,确实是这样的,具体原因如下:

       服务器换过主机,所以此时机器名不一样了,以前的发布项目都是之前的机器名,所有发布的项目在现在的机器名上未能成功删除,最终导致复制功能不可用。由于sql的复制功能都是通过机器名去寻址的,所以在更换主机后由于新的机器名和旧的不一样,故提示分发服务器未正确安装。

解决方案:

//清空数据库所有的订阅和发布项目
所有本服务器上有发布或订阅的的数据都用下面的命令清理掉就可以了。
sp_removedbreplication 'dbname'

解决细节摸着里