枯竭:mssql无法启用

1. 问题背景

近期在使用Microsoft SQL Server 2008 R2 数据库时,发现其一直处于状态“已停止” 。经过多次尝试,依然无法启动。下面将分享解决这一问题的过程。

2. 问题定位

2.1 检查错误日志

首先,可以尝试查看SQL Server的错误日志以了解发生了什么。打开SQL Server Management Studio并连接到数据库引擎实例,右键单击实例名称-> 管理-> SQL Server 日志 ,在右侧的窗口中可以查看日志信息。

在日志中,可以看到类似以下错误信息:

2019-11-01 11:47:00.77 Server      Error: 17051, Severity: 16, State: 1.

2019-11-01 11:47:00.77 Server SQL Server evaluation edition is expired.

...

以上错误信息表明SQL Server版本已过期,需要升级或重新激活。但我的SQL Server版本并未过期,因此需要继续寻找问题。

2.2 查看服务状态

接着,可以查看数据库服务的状态。打开Windows服务列表,找到SQL Server服务,右键单击并选择“属性”。可以看到服务的状态是“已停止”。

尝试启动服务,可以看到以下错误提示:

Windows could not start the SQL Server (MSSQLSERVER) on Local Computer. 

For more information, review the System Event Log...

于是,可以从事件日志中查找相关信息。

2.3 查看事件日志

打开Windows事件查看器,跳转到“Windows日志-> 应用程序”下的事件。可以看到来自SQL Server的错误消息。

以下是事件消息的内容:

Log Name:      Application

Source: MSSQLSERVER

Date: 10/31/2019 11:14:21 PM

Event ID: 17113

Task Category: Server

Level: Error

Keywords: Classic

User: N/A

Computer: MyComputer

Description:

Could not start the SQL Server (MSSQLSERVER) service on Local Computer.

Error 1069: The service did not start due to a logon failure.

这里显示了一个“日志失败”的错误,这意味着SQL Server服务无法正确登录计算机。 因此,需要检查SQL Server服务的登录设置。

3. 解决问题

3.1 检查登录设置

为了允许服务进行登录,需要使数据库引擎实例使用正确的登录凭据。

打开服务列表,找到SQL Server服务,右键单击并选择“属性”。在“登录”选项卡上,确保使用正确的登录名和密码,这些登录名和密码拥有足够的权限来启动所需的服务。

3.2 重置master数据库的路径

如果登录设置正确,可能是master数据库出现了问题,这是SQL Server启动所需的一个必要组件。

打开命令提示符,以管理员身份运行,并导航到SQL Server实例的数据目录。输入以下命令并按Enter:

cd C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA

接着,使用以下命令更改master数据库的路径:

move master.mdf master.mdf.old

move mastlog.ldf mastlog.ldf.old

这会将master数据库的当前版本重命名为 .old。接着需要恢复默认的主数据库和日志文件。使用以下命令:

copy C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Template Data\master.mdf C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA

copy C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Template Data\mastlog.ldf C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA

3.3 修改注册表

如果master数据库路径的更改无效,则需要尝试修改注册表,解决SQL Server服务无法启动的问题。

打开“运行”窗口,并输入regedit打开注册表编辑器。然后导航至以下路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

在此路径下,将“MSSQLSERVER”项的值类型从3更改为1。这样就可以重置MSSQL服务器并重新启动。

4. 总结

在本文中,我们探讨了SQL Server服务无法启动的原因,并提供了一些解决方案。无论什么原因导致SQL Server服务无法启动,正确的方法将始终在检查服务设置、检查事件日志以及更改服务登录设置等步骤中找到。

数据库标签