SqlServer bug:sp_replqueuemonitor 在SqlServer 2008(RTM) 执行无结果

当前版本: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)  中,是正常执行的。

存储过程参数获取:

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

时间: 2024-11-08 18:48:09

SqlServer bug:sp_replqueuemonitor 在SqlServer 2008(RTM) 执行无结果的相关文章

SqlServer Bug:扩展存储过程一直运行出现等待类型PREEMPTIVE_OS_GETPROCADDRESS

今天使用xp_readerrorlog第一次在新服务器查询一个死锁信息,结果一直在运行,即使kill了也一直在运行: (分别在2个服务器实例中运行,其中一个已经kill) exec xp_readerrorlog 0,1,NULL,NULL,'2015-01-07 22:13:10','2015-01-07 22:13:11','ASC' 而下面这个执行是正常的,结果很快出来: exec xp_readerrorlog 0,1,'deadlock victim',NULL,'2015-04-01

sqlserver 存储过程中拼接sql语句 动态执行

ALTER PROC [dbo].[Student_Friend_Get] @startRowIndexId INT, @maxNumberRows INT, @schoolId INT, @gradeId INT, @cId INT, @keyWords NVARCHAR(100), @userName VARCHAR(50) AS BEGIN DECLARE @sqlfilter VARCHAR(max) SET @sqlfilter = ' ' IF(@schoolId <> -1) S

设置 sqlserver Profiler 只监控 EF的sql执行请求

当我们用EF执行语句的时候,可以使用 sqlserver Profiler来监控到底执行了哪些sql语句,但是默认他是监控全局的,我们只想监控Ef的语句,这里如下设置 这样就只会监控 EF产生的 sql语句了 设置 sqlserver Profiler 只监控 EF的sql执行请求

sqlserver 索引优化 CPU占用过高 执行分析 服务器检查

原文:sqlserver 索引优化 CPU占用过高 执行分析 服务器检查 1. 管理公司一台服务器,上面放的东西挺多的.有一天有个哥们告诉我现在程序卡的厉害.我给他说,是时候读点优化的书了.别一天到晚没个正形,现在写的程序卡的跑不动.他说我本地 是好好的,跑的很快.我说别扯那么多没用的,服务器不比你的本子强得多.待洒家上去看看.不看不知道一看吓一跳,CPU占用在95上下.开个程序是不卡,可整点有些时间是卡的一匹.这就令人很难受了. 本来服务器上也没有什么,就一个网站和几个数据库.那一个个分析吧,

SQLServer &#183; BUG分析 &#183; Agent 链接泄露分析(转载)

背景 SQLServer Agent作为Windows服务提供给用户定期执行管理任务,这些任务被称为Job:考虑应用镜像的场景如何解决Job同步问题,AWS RDS的做法是不予理会,由用户维护Job,假如发生切换用户需要在新的Principal端创建Job:另一种做法是镜像端保持同步Job,切换后尽量让用户无感知不需要多余维护动作,但这种做法在某些情况会遇到非常严重的问题--内存耗尽. 问题排查分析 第一次分析 问题发生时实例的ERRORLOG出现: Error: 701, Severity:

SqlServer Bug:复制架构更改参数(replicate_ddl)无效

最近测试可更新订阅的架构更改问题,发现了一个 bug. 在复制中,当在发布数据库对发布数据库进行架构更改时,结构自动同步到订阅中(这就是 复制架构更改).由于某些原因,对某个表增加字段时,不需要同步到订阅.在发布属性中,有一个选项可以控制不同步架构更改.如下图: 只有将 复制架构更改 的值改为 false ,更改结构则不同步,更改实时生效. 也可以脚本来更改该参数: EXEC sp_changepublication @publication = N'publication', @propert

sqlserver 索引优化 CPU占用过高 执行分析 服务器检查[转]

SELECT TOP 10 [Total Cost] = ROUND(avg_total_user_cost * avg_user_impact * (user_seeks + user_scans),0) , avg_user_impact , TableName = statement , [EqualityUsage] = equality_columns , [InequalityUsage] = inequality_columns , [Include Cloumns] = incl

sqlserver 动态表名 动态字段名 执行 动态sql

动态语句基本语法: 1 :普通SQL语句可以用exec执行 Select * from tableName exec('select * from tableName') exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态 SQL declare @fname varchar(20) set @fname = 'FiledName' Select @fname from

SQLServer笔记--如何把SQLServer数据库从高版本降级到低版本?

方法一:使用图形化操作(GUI),打开SSMS(SQL Server Management Studio) 第一步:右键你要降级的数据库,按下图选择: 第二步:在对话框中的[高级]中按如下方式设置. 第三步:把脚本保存起来,然后在低版本的SQLServer中运行脚本. 打开低版本SQLServer数据库,连接上数据库,双击脚本即可运行.或者把脚本拖到数据库的查询分析器界面([新建查询]中粘贴脚本代码即可),然后点运行. 第四步:在高版本的SQLServer中通过[任务]→[导入数据],将数据从高