迁移 Reporting Services 安装后如何删除网络场中的 Ghost 服务器?

How to Remove a Ghost Server in Web Farm After Migrating a Reporting Services Installation?

刚刚按照 https://msdn.microsoft.com/en-us/library/ms143724.aspx 中的步骤将 Reporting Services 安装迁移到新服务器(从和到 SQL 2012 标准版) 但是当我准备好使用 Report Manager Web 界面验证我的部署时,我收到错误:

The feature: "Scale-out deployment" is not supported in this edition of Reporting Services. (rsOperationNotSupported)

确实,当我返回 Reporting Services 配置管理器时,在横向扩展部署下我有 2 台服务器,一台位于本地服务器(新机器)上,另一台引用了具有不同名称的旧服务器。问题是当我尝试删除时它告诉我任务失败:

Microsoft.ReportingServices.WmiProvider.WMIProviderException: Unable to connect to the Report Server . ---> System.Runtime.InteropServices.COMException (0x800706BA): The RPC server is unavailable

我能理解为什么它不可用,因为它们都在不同的网络上。所以我的问题是,我怎样才能摆脱它,以便最终一切正常?

找到了。移除ghost服务器的方法是连接ReportServer数据库,移除dbo.Keystable中的旧服务器。 重新启动 Reporting Services 后,旧服务器不再在列表中。

USE ReportServer
go
select * from keys

--for safety added to the delete ghost machine if no recent executions in last 30 days.

delete from keys 
where MachineName = 'YourGhostServer' --replace with your old server name, if multiple run one by one.
and MachineName not in (select substring(InstanceName,0,(charindex('\',InstanceName,0))) 
                          from ExecutionLog 
                         where timestart>getdate()-30 
                         group by InstanceName)  

CAREFUL,运行 第一部分仅包含 select,分析输出,然后将要删除的特定机器名称值(旧服务器名称)复制到删除的 where 子句中声明,替换 YourGhostServer 废话。

请注意,密钥 table 可能拥有网络可达且在线的合法机器。您可以通过简单地 ping 它们或检查它们是否 运行 SSRS 服务来验证这一点,不要只是简单地从 table 中删除实际在线的服务器,而是使用报表服务器管理器删除服务器那是在线的。

只有在旧机器确实无法访问或已停用时,才应从密钥中删除 table。至少,这就是我在我的情况下会做的。 :)