将数据库 ReportServerTempDB 的数据库选项 COMPATIBILITY_LEVEL 设置为 100

将数据库 ReportServerTempDB 的数据库选项 COMPATIBILITY_LEVEL 设置为 100

我的 SQL Server 上的错误日志每 5 秒就会抛出一次此警告

“将数据库 ReportServerTempDB 的数据库选项 COMPATIBILITY_LEVEL 设置为 100。”

据我所知,这可能是因为我的环境混合了 2005 和 2008 SQL Server,它们之间有链接服务器并且从每个服务器中提取报告,但我不确定此消息的具体含义。

此消息是否在警告我存在问题?如果是,我该如何解决潜在问题。如果不是,我该如何让此消息停止充斥我的错误日志。

答案1

我们在 SSRS 2008 环境中也遇到了这种情况(尽管幸运的是每天只有一次)。显然这是一个已知的错误,但不会影响 Reporting Services 的功能。

http://connect.microsoft.com/SQLServer/feedback/details/488169/setting-database-option-compatibility-level-to-100-for-reportserver

来自微软:“感谢您向我报告此问题。我们已经在 SQL Server 2008 R2 CTP2 中修复了此错误,但由于担心破坏向后兼容性,我们决定不在 SQL Server 2008 中修复它。再次感谢您的反馈。”

答案2

如果您运行跟踪(SQL Server Profiler),您可以确认该错误。

DECLARE @currVer           nvarchar(128) 
        , @currMajorVer    nvarchar(32) 
        , @idx             int 
        , @currMajorVerInt tinyint; 

SELECT @currVer = CONVERT(nvarchar(128), ServerProperty('ProductVersion')); 

SET @idx = CHARINDEX('.', @currVer, 0); 
SET @currMajorVer = SUBSTRING(@currVer, 1, @idx - 1); 
SET @currMajorVerInt = CONVERT(tinyint, @currMajorVer); 

DECLARE @dbname sysname 

IF @currMajorVerInt = 10 
  BEGIN 
      SELECT @dbname = DB_NAME() 

      EXEC sp_dbcmptlevel 
        @dbname, 
        100; 
  END 

USE [ReportServerTempDB] 

IF @currMajorVerInt = 10 
  BEGIN 
      SELECT @dbname = DB_NAME() 

      EXEC sp_dbcmptlevel 
        @dbname, 
        100; 
  END 

USE [ReportServer]

您还可以确认 12 小时重启行为是否符合默认安装设置:

<Configuration>
    <Service>
        <RecycleTime>720</RecycleTime>
    </Service>
</Configuration>

指定应用程序域的回收时间(以分钟为单位)。有效值范围为 0 到最大整数。默认值为 720。

http://msdn.microsoft.com/en-us/library/ms157273(v=SQL.100).aspx

无需采取进一步的行动,除非您考虑更改 RecycleTime 的优点。

相关内容