我正在将SQL 2008 R2数据库复制到SQL 2016数据库。
当我使用SSMS连接到SQL2016数据库时,在对象资源管理器中选择Replication->Local >MySubscription,然后右击并选择“属性”,得到错误“不能将‘null’值应用于属性ServerInstance:。”
这意味着什么,我怎样才能修好它?我使用我的Windows域用户登录,这是两个系统上的一个系统管理员。
发布于 2017-07-27 01:01:10
从SQL 2016开始,引入了更改,以支持内存优化的Tran复制订阅服务器。SSMS中的这个bug是对该更改的回归。
在订阅属性表单中,添加了一个新条目,以显示它是否是内存优化的订阅。此信息是从分发服务器获取的。
因此,对于推送订阅,如果订阅服务器是SQL 2016或更高版本,则如果尝试查看来自订阅服务器的订阅属性,则分发服务器将被返回为NULL,因为它无法访问/连接到分发服务器。这就是为什么你会得到这个错误。
在此修复之前,您可以从发布服务器端查看订阅属性。
发布于 2017-01-20 23:26:12
我刚刚遇到了同样的问题,我的复制发布服务器和分发服务器在Server 2014上,我的订阅服务器是Server 2016。当我尝试使用SSMS 2016时,我遇到了同样的问题,但当我使用SSMS 2014时,一切都很好,所以这很可能是因为SSMS的版本。尝试使用发行者(源)正在使用的SSMS版本。
发布于 2017-05-12 16:09:57
当所有服务器都在同一版本的SQL上时,我遇到了这个问题。我在某个地方看到,如果分发服务器和发布服务器之间存在三个以上版本的SQL (以及订阅服务器取决于复制的类型),则复制将无法工作,但为此,我对数据库使用了较低的兼容性级别。
在我目前的设置中,一切都是SQL 2016。我也有这个问题,并通过为订阅服务器上的分发服务器和发布服务器创建链接服务器来解决这个问题。这些应该在设置过程中创建,所以我不知道为什么没有。
从分发服务器中,我为发布服务器编写了链接服务器repl_distributor和链接服务器脚本,然后在订阅服务器上运行这些脚本。这就解决了这个问题。
我希望这也适用于你(虽然你的问题是很久以前的事了,所以你现在可能没事了!)
https://stackoverflow.com/questions/38662653
复制相似问题