SQL Server 2012 Express的修复/删除/安装过程卡住或挂起

问题描述 投票:8回答:2

SQL Server 2012 Express的一个实例以某种方式损坏了。 我怀疑它在某种程度上与我对Entity Framework的使用有关,但还没有证据。

在尝试修复实例时,修复过程似乎停留在SqlEngineConfigAction_repair_validation_Cpu64步骤中。 很长一段时间没有明显的CPU使用率,所以我最终取消了修复过程。

尝试删除实例时,卸载过程似乎在SqlEngineConfigAction_remove_validation_Cpu64步骤中挂起。

尝试安装第二个实例时,安装过程似乎在SqlEngineDBStartConfigAction_install_configrc_Cpu64步骤中挂起。

对于某些尝试,SQL Server服务未事先手动停止。对于其他尝试,手动停止服务,并从“自动”更改为“手动”。

数据库损坏的症状,以防这有助于: “SQL Server(SQLEXPRESS)”服务在系统重新引导时的状态为“已启动”,但在使用“重新启动”选项手动重新启动服务时,它将停留在“正在启动”状态。

手动停止然后启动该服务时,它会显示以下错误:

Windows无法在本地计算机上启动SQL Server(SQLEXPRESS)服务。错误1053:服务未及时响应启动或控制请求。

SSMS(SQL Server Management Studio)无法连接到该实例。它要么永远尝试没有显示超时或错误,要么显示此错误:

已成功与服务器建立连接,但在登录前握手期间发生错误。 (提供程序:SSL提供程序,错误:0 - 等待操作超时。)(Microsoft SQL Server,错误:258)

编辑:我猜测投票是因为没有以问题的形式陈述。所以要澄清一下,问题是如何解决修复,删除或安装过程挂起的问题?

编辑2:作为后续,事实证明腐败的根本原因是在没有首先明确停止SQL Server服务的情况下关闭Windows 7 PC,即使当时没有主动使用SQL Server Express。

EDIT3:问题似乎已在SQL Server 2014 Express中得到解决。

sql-server sql-server-express repair
2个回答
8
投票

这对我有用。

解决方案1: - 停止“SQL Server(SQLEXPRESS)”和“SQL Server VSS编写器”服务,并将其启动类型设置为“手动”。 - 重启电脑。 - 运行修复过程。 - 将启动类型更改回“自动”并重新启动服务。

解决方案2: - 停止“SQL Server(SQLEXPRESS)”和“SQL Server VSS编写器”服务,并将其启动类型设置为“已禁用”。 - 重启电脑。 - 运行“删除”进程以完全卸载SQL Server Express(实例+共享组件)。 - 再次重启PC。 - [可选]运行您最喜欢的注册表清理程序,如CCleaner。 - 安装SQL Server Express(除非您的目标只是卸载它)。

注意:在解决方案2方案中,我在第一次PC重启后尝试了修复过程,但它在步骤SqlEngineConfigAction_repair_validation_Cpu64中卡住了。


1
投票

在我的情况下,卸载程序卡在SqlEngineConfigAction_repair_validation_Cpu64的原因是SQL服务器系统表中的文件路径无效。

要纠正这个问题,允许卸载,这对我有用:

1)设置服务以使用本地帐户(开始 - >本地服务 - > SQL-Server->属性 - >登录 - >本地系统帐户)

2)按照这里的步骤:https://social.technet.microsoft.com/wiki/contents/articles/31786.sql-server-not-starting-after-fresh-installation.aspx

3)重试卸载。

如果以上链接不可用,请参阅以下简短摘要:

  • 以恢复模式启动SQL Server服务:NET START MSSQL$SQLEXPRESS /f /T3608
  • 连接到服务器:SQLCMD -S .\SQLEXPRESS
  • 列出系统表中引用的文件:SELECT name, physical_name, state_desc FROM sys.master_files ORDER BY database_id;(go)
  • 无论文件路径指向无效的东西(如丢失的驱动器),请使用以下命令进行调整:ALTER DATABASE model MODIFY FILE ( NAME = modeldev, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS01\MSSQL\DATA\model.mdf');(go)请注意,文件具有不同的名称和不同的扩展名(.mdf,.ldf)
  • 退出sql server(退出)
  • 关闭服务NET STOP MSSQL$SQLEXPRESS
© www.soinside.com 2019 - 2024. All rights reserved.