我在 Windows 2008 R2 机器上有一个 SQL Server 2008 R2 实例,并且 Windows 已经将近一年没有更新(我知道),昨晚应用了 Windows 补丁(大约有 100 个待处理),今天早上 SQL Server不会启动。
事件查看器中的错误是:
initrrlog:无法打开错误日志文件“D:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL1\MSSQL\Log\ERRORLOG”。操作系统错误 = 5(无法检索此错误的文本。原因:15105)。
根据许多链接(例如SQLServerCentral),我发现这似乎确实是某种权限问题。SQL Server 配置为使用的服务帐户是网络服务帐户,我在 AD 中检查过,似乎没问题,密码正确(自昨天以来,在这方面没有任何变化,当它工作时)我也试过:
在盒子上设置服务帐户本地管理员(临时)
确保服务帐户也已添加到服务器上的 SQL Server 组
向服务帐户授予对错误日志文件夹的显式权限(完全控制);然后到整个程序文件文件夹(完全控制)
我仍然得到同样的错误。
接下来,我尝试在配置管理器中更改使用的服务帐户(网络管理员 - (我知道,只是为了测试)或本地服务帐户),当应用这些更改时,我收到 WMI 提供程序错误:
WMI 提供程序错误 [调用 WMI 提供程序错误代码:0x800742a2]
我对此有点困惑,以前从未见过类似的东西。
有没有人对正在发生的事情有任何想法,或者我错过了什么可以尝试的东西?
编辑 1:
补充一点,我在搜索 WMI 错误MS Support、SQLServerCentral时检查了第一次点击,但他们似乎仍然在暗示权限问题。我已经仔细检查了上述所有与权限问题相关的内容,但看不出问题出在哪里(服务帐户现在是本地管理员(!),在框上的 SQL Server 组中,并且对所有人都有明确的完全控制权程序文件)。我想知道这个 WMI 错误是红鲱鱼,还是完全独立的问题。
编辑 2:
似乎 ERRORLOG 文件有问题阻止启动,而不是权限问题 - 不确定是什么,但可能是文件本身的损坏或某些东西,因为删除它(好吧,将它复制到其他地方)似乎已经强制 SQL服务器生成一个新的,它启动正常。我不确定错误日志文件有什么问题(我会看看我是否可以打开它并进行调查),我不知道 WMI Provider 错误是什么,现在服务在线我无法完全测试现在,我将在计划的停机时间稍后再试一次,以查看 WMI 提供程序是否出现(并酌情更新/添加为答案)。
编辑 3(最终更新):
似乎所有症状都具有误导性,在这种情况下,此类问题的常见原因(权限)不是原因,这是 ERRORLOG 文件本身的问题,删除它(重新创建)解决了问题和服务出现了。我添加了一个描述这个的答案。但是,这似乎是我能找到的唯一一种具有此原因的症状的情况,并且在许多情况下是权限,我在上面提供了链接,这个问题的答案非常详细。因此,如果您将来遇到此问题,我建议您在检查 ERRORLOG 文件本身之前按照这些步骤(首先检查权限问题)。