我的 SQL Server 上的错误日志每 5 秒就会抛出一次此警告
“将数据库 ReportServerTempDB 的数据库选项 COMPATIBILITY_LEVEL 设置为 100。”
据我所知,这可能是因为我的环境混合了 2005 和 2008 SQL Server,它们之间有链接服务器并且从每个服务器中提取报告,但我不确定此消息的具体含义。
此消息是否在警告我存在问题?如果是,我该如何解决潜在问题。如果不是,我该如何让此消息停止充斥我的错误日志。
答案1
我们在 SSRS 2008 环境中也遇到了这种情况(尽管幸运的是每天只有一次)。显然这是一个已知的错误,但不会影响 Reporting Services 的功能。
来自微软:“感谢您向我报告此问题。我们已经在 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 的优点。