SqlServer bug:sp_replqueuemonitor 在SqlServer 2008(RTM) 执行无结果
2015-05-07 18:28
337 查看
当前版本:windows server 2008 r2 sp1 + SqlServer 2008 (RTM)
sp_replqueuemonitor
此存储过程列出 MicrosoftSQL Server 队列或 Microsoft 消息队列中指定发布的排队更新订阅的队列消息。
(在订阅数据库中,查看队列正在执行(或堵塞)的命令——即正在从订阅同步回到发布的命令)
然而该存储过程在windows server 2008 r2 sp1 + SqlServer 2008 (RTM) 执行无任何结果返回(队列中的大事务还在)
而之前在 windows 2003 r2 sp2 + SqlServer 2008 (RTM) 中,是正常执行的。
存储过程参数获取:
存储过程在订阅数据库执行:
最后确认为SqlServer中的bug:
FIX: No rows are returned when you use the sp_replqueuemonitor stored procedure to list the queued messages for a queue-updating subscription in SQL Server
原因;
问题发生的原因是,存储过程sp_replqueuemonitor的内部查询语句对于列queue_id使用了不正确的值.
在存储过程sp_replqueuemonitor中,一些查询使用了queue_id的值作为查询条件.
然而,定义了不正确的值mssqlqueue替换了正确的值mssqlqueuev2
需要安装累计更新包sp1.
Cumulative update package 1 for SQL Server 2008
不过本人当前直接升级到sp4(Service Pack 4)
SQL Server 2008 Service Pack 4 :Download
sp_replqueuemonitor
此存储过程列出 MicrosoftSQL Server 队列或 Microsoft 消息队列中指定发布的排队更新订阅的队列消息。
(在订阅数据库中,查看队列正在执行(或堵塞)的命令——即正在从订阅同步回到发布的命令)
然而该存储过程在windows server 2008 r2 sp1 + SqlServer 2008 (RTM) 执行无任何结果返回(队列中的大事务还在)
而之前在 windows 2003 r2 sp2 + SqlServer 2008 (RTM) 中,是正常执行的。
存储过程参数获取:
SELECT TOP 5 tranid,COUNT(*) CMD FROM [Platform].[dbo].[MSreplication_queue] (NOLOCK) GROUP BY tranid ORDER BY CMD DESC select publisher, publisher_db, publication from dbo.MSsubscription_agents
存储过程在订阅数据库执行:
exec sys.sp_replqueuemonitor 'publisher','publisher_db','publication','tranid',0
最后确认为SqlServer中的bug:
FIX: No rows are returned when you use the sp_replqueuemonitor stored procedure to list the queued messages for a queue-updating subscription in SQL Server
原因;
问题发生的原因是,存储过程sp_replqueuemonitor的内部查询语句对于列queue_id使用了不正确的值.
在存储过程sp_replqueuemonitor中,一些查询使用了queue_id的值作为查询条件.
然而,定义了不正确的值mssqlqueue替换了正确的值mssqlqueuev2
需要安装累计更新包sp1.
Cumulative update package 1 for SQL Server 2008
不过本人当前直接升级到sp4(Service Pack 4)
SQL Server 2008 Service Pack 4 :Download
相关文章推荐
- 升级到SQL Server 2008 R2,复制监视器中进程无法在“XXX”上执行“sp_replcmds”
- SqlServer动态执行SQL语句sp_executesql、Exec
- SQLSERVER语句的执行时间显示的统计结果是什么意思
- SQLSERVER 执行sp_who2 显示的LastBatch列时间显示不正确
- Access 2010 执行SQLServer 2008 R2存储过程获取返回值
- sqlserver中sp_executesql使用实例(获取动态sql输出结果)
- sp_executesql动态执行sql语句并将结果赋值给一变量
- 如何查看SQLSERVER的版本信息和SP补丁信息(适用于SQL2005,2008)
- sqlserver 动态sql执行execute和sp_executesql
- 解决方案:PowerDesigner 16生成的SqlServer 2000/2005/2008脚本执行出现:“对象名sysproperties无效”
- [Bug]ArcSDE10.1执行ST_Geometry大数据量的大范围查询范围结果为0
- SqlServer中存储过程中将Exec的执行结果赋值给变量输出
- 解决方案:PowerDesigner 16生成的SqlServer 2000/2005/2008脚本执行出现:“对象名sysproperties无效”
- sqlserver中sp_executesql使用实例(获取动态sql输出结果)
- 如何查看SQLSERVER的版本信息和SP补丁信息(适用于SQL2005,2008)
- SqlServer中存储过程中将Exec的执行结果赋值给变量输出
- SqlServer中存储过程中将Exec的执行结果赋值给变量输出
- SQLSERVER 动态执行SQL sp_executesql与EXEC
- SQLSERVER 动态执行SQL sp_executesql与EXEC
- sqlserver利用sp_oa系列存储过程调用xml+xsl eval输出运算结果的一个例子。