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中得到解决。
这对我有用。
解决方案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中卡住了。
在我的情况下,卸载程序卡在SqlEngineConfigAction_repair_validation_Cpu64
的原因是SQL服务器系统表中的文件路径无效。
要纠正这个问题,允许卸载,这对我有用:
1)设置服务以使用本地帐户(开始 - >本地服务 - > SQL-Server->属性 - >登录 - >本地系统帐户)
3)重试卸载。
如果以上链接不可用,请参阅以下简短摘要:
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)NET STOP MSSQL$SQLEXPRESS