SQL Server 2005 和 Windows 事件日志

Posted

技术标签:

【中文标题】SQL Server 2005 和 Windows 事件日志【英文标题】:SQL Server 2005 & the Windows Event Log 【发布时间】:2010-11-14 16:32:50 【问题描述】:

我正在运行 SQL Server 2005 Standard。我收到了几个需要做出反应的警报。所以我创建了这些警报,但它们从未出现,因此依赖于它们的作业永远不会运行。

我发现对于警报,SQL Server 必须写入 Windows 事件日志,但这根本没有发生。每个消息来源都告诉我,通常 SQL Server 会自动记录,所以我不知道为什么我的实例没有。有谁知道(取消)激活记录到 Windows 事件日志的选项?

更新:

我看到我的描述缺少一些基本信息,所以我将在此处添加。

我有一个见证人的镜像场景。我要查找的是 ID 为 1440 和 1441 的事件,这表明一台服务器将其角色 vom Principal 更改为 Mirror。这些应该自动写入 Windows 事件日志,但不会发生。毕竟,不仅仅是一条来自 SQL Server 的消息被写入事件日志。

【问题讨论】:

【参考方案1】:

sp_altermessage 更改系统消息以便记录它们(取决于版本/SP)

sp_addmessage 用于用户定义的警报

RAISERROR.. WITH LOG 在您的代码中(需获得许可)

否则,您要查找哪些警报?

【讨论】:

我有一个带有见证的镜像场景。我要查找的是 ID 为 1440 和 1441 的事件,这表明一台服务器将其角色 vom Principal 更改为 Mirror。所以我需要 SQL Server 生成的消息,而不是任何用户定义的消息。【参考方案2】:

我终于找到了答案。有一个启动参数用于告诉 SQL Server 它不应将任何内容记录到 Windows 事件日志中:-n

要设置它,您必须打开 SQL Server 配置管理器,打开 SQL Server 实例的属性并转到高级。在那里您会找到一个名为 Startup Parameters 的字段。在这里只需输入(或在我的情况下删除)参数 -n,您的 SQL Server 将停止写入 Windows 事件日志。

【讨论】:

以上是关于SQL Server 2005 和 Windows 事件日志的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server2005 windows身份验证无法登陆问题

win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程

无法让 SQL Server CE 与 Visual Studio 2005 和 Windows CE 5.0 一起使用

(转)SQL Server 2005两种安全验证模式

windows server2003 R2 标准版的操作系统,安装了sql2005标准版后老是中毒

MS Access 2003 + 到 SQL Server 2005 的链接表 + Windows 身份验证 = 慢