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 一起使用