如何查看和修改请求订阅属性 (SQL Server Management Studio)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查看和修改请求订阅属性 (SQL Server Management Studio)相关的知识,希望对你有一定的参考价值。
参考技术A 在“重新初始化订阅”对话框中将订阅标记为要重新初始化,该对话框可以在microsoft
sql
server
management
studio
的“本地发布”文件夹和“本地订阅”文件夹中打开。也可以从“所有订阅”选项卡和复制监视器中的发布节点中对订阅进行标记。有关启动复制监视器的信息,请参阅如何启动复制监视器(复制监视器)。将订阅标记为要重新初始化时,可以选择下列选项之一:
使用当前快照
选择此选项可在下次分发代理或合并代理运行时将当前快照应用到订阅服务器。如果没有可用的有效快照,则无法选择此选项。
使用新快照
选择此选项可用新快照重新初始化订阅。只有快照已由快照代理生成后,才能将此快照应用到订阅服务器。如果快照代理设置为按计划运行,则直到下一个计划的快照代理运行后才能重新初始化订阅。选择“立即生成新快照”可立即启动快照代理。
在重新初始化之前上载未同步的更改
仅用于合并复制。选择此选项可在用快照覆盖订阅服务器上的数据之前上载订阅数据库中所有挂起的更改。
如果添加、删除或更改参数化筛选器,重新初始化期间在订阅服务器上挂起的更改将无法上载到发布服务器。若要上载挂起的更改,请在更改筛选器前同步所有订阅。
在management
studio
中将单个推送订阅或单个请求订阅(位于发布服务器上)标记为要重新初始化在management
studio
中连接到发布服务器,然后展开服务器节点。展开“复制”文件夹,再展开“本地发布”文件夹。展开包含要重新初始化的订阅的发布。右键单击订阅,再单击“重新初始化”。在“重新初始化订阅”对话框中,选择选项,然后单击“标记为要重新初始化”。在management
studio
中将单个请求订阅(位于订阅服务器)标记为要重新初始化在management
studio
中连接到订阅服务器,然后展开服务器节点。展开“复制”文件夹,再展开“本地订阅”文件夹。右键单击订阅,再单击“重新初始化”。在“重新初始化订阅”对话框中,选择选项,然后单击“标记为要重新初始化”。在management
studio
中将所有订阅标记为要重新初始化在management
studio
中连接到发布服务器,然后展开服务器节点。展开“复制”文件夹,再展开“本地发布”文件夹。
SQL Server 复制本地订阅属性返回“无法将值‘null’应用于属性 ServerInstance:值不能为空。”
【中文标题】SQL Server 复制本地订阅属性返回“无法将值‘null’应用于属性 ServerInstance:值不能为空。”【英文标题】:SQL Server Replication Local Subscription Properties returns "Cannot apply value ‘null’ to property ServerInstance: Value cannot be null." 【发布时间】:2016-12-04 09:32:18 【问题描述】:我正在将 SQL 2008 R2 数据库复制到 SQL 2016 数据库。
当我使用 SSMS 连接到 SQL 2016 数据库时,在对象资源管理器中 选择复制->本地订阅->我的订阅然后右键单击并选择属性我得到错误“无法将值'null'应用于属性ServerInstance:值不能为空。”。
这是什么意思,我该如何解决?我使用我的 Windows 域用户登录,该用户在两个系统上都是系统管理员。
【问题讨论】:
我对 SQL 2016 > SQL 2016 设置有同样的问题。 【参考方案1】:从 SQL 2016 开始,引入了更改以支持 Tran 复制的内存优化订阅者。 SSMS 中的此错误是该更改的回归。
在订阅属性表单中,添加了一个新条目以显示它是否为内存优化订阅。此信息是从分发服务器获取的。
因此,对于推送订阅,如果订阅者是 SQL 2016 或更高版本,如果您尝试从订阅服务器查看订阅属性,则分发服务器返回为 NULL,因为它无法访问/连接到分发服务器.这就是您收到此错误的原因。
在解决此问题之前,您可以从发布者端查看订阅属性。
【讨论】:
嗨@Madhan,您能否提供指向任何有关此错误的文档的链接?谢谢:) 虽然微软没有官方文档证实这一点,但我们最近在测试 SSMS 以进行另一项改进时发现了这个错误。【参考方案2】:我刚刚遇到了同样的问题,我的复制发布者和分发者在 SQL Server 2014 上,而我的订阅者是 SQL Server 2016。当我尝试使用 SSMS 2016 时,我遇到了同样的问题,但是当我使用 SSMS 2014 时,一切正常,所以这很可能是因为 SSMS 的版本。尝试使用发布者(源)正在使用的 SSMS 版本。
【讨论】:
【参考方案3】:当所有服务器都在同一版本的 SQL 上时,我遇到了这个问题。我在某处读到,如果分发者和发布者(以及订阅者取决于复制类型)之间存在三个以上版本的 SQL,复制将无法工作,但我通过对数据库使用较低的兼容性级别来解决这个问题。
在我当前的设置中,一切都是 SQL 2016。我遇到了同样的问题,并通过为订阅者上的分发者和发布者创建链接服务器来修复它。这些应该是在设置过程中创建的,所以我不确定为什么没有。
我从发行商那里编写了链接服务器 repl_distributor 以及发布者的链接服务器的脚本,然后在订阅者上运行这些脚本。这样就解决了这个问题。
我希望这也适用于你(虽然你的问题是很久以前的,所以你现在可能没事了!)。
【讨论】:
【参考方案4】:检查链接服务器的“服务器选项”选项卡。在这里您指定分发者、发布者和订阅者。确保在适合您的设置的情况下将这些设置为 true。如果这些选项都设置为 false 就像我使用所有 SQL 2016 的情况一样,您可能会收到此错误,因为它无法连接到分发服务器。
【讨论】:
【参考方案5】:根据 SSMS 17.4 的 change log(2017 年 12 月 14 日发布),此错误现已针对 PULL 订阅修复。
【讨论】:
【参考方案6】:来自这个Connect item,解决方法似乎是..
1.在windows box上添加用户为本地管理员 2.以管理员身份运行SSMS..
【讨论】:
我从链接中添加了相关部分,我不知道为什么这被否决了以上是关于如何查看和修改请求订阅属性 (SQL Server Management Studio)的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 复制本地订阅属性返回“无法将值‘null’应用于属性 ServerInstance:值不能为空。”