无法启动SQL Server(MSSQLSERVER)、启动后又马上停止。数据库文件损坏重建解决方案
摘要:SQL Server服务异常停止且无法连接,通常因异常断电导致数据库文件损坏。主要症状包括服务自动停止、连接失败等,检测发现为数据库系统库损坏。解决方案分五步:1)查看事件日志确认损坏文件;2)备份原数据库文件;3)替换系统模板文件;4)定位setup.exe安装程序;5)执行REBUILDDATABASE命令重建系统数据库(需根据认证模式选择对应命令)。成功执行后服务可恢复,完整操作需参考
·
症状具体表现为 无法启动SQL Server(MSSQLSERVER)、SQL Server Browser、SQL Full-text Filter Daemon Launcher、SQL Server代理等服务,启动后又马上停止。
SQLServer数据库无法连接,提示在 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接


这种情况是数据库文件损坏,大概率为电脑、工控机、服务器在没有UPS备用电源的情况下异常断电而SQLServer还在工作导致文件损坏。
解决方案如下,请按照步骤操作:
1、查看电脑中的事件日志
右键此电脑——>管理——>事件查看器——>Windows日志——>应用程序——>右侧的事件日志——>双击可查看日志内容


查看发现为数据库文件损坏,modellog.ldf损坏
2、先备份如下路径的文件:
一、项目用到的数据库文件,XXX.mdf、XXX.ldf
二、原有的系统库文件,路径如下:
SQL2014: C:\Program Files\Microsoft SQL Server\MSSQL\DATA\
或
D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\
根据数据库安装路径去找对应的文件


3、替换文件
复制model.mdf、mastlog.ldf、model.mdf、modellog.ldf、msdbdata.mdf、msdblog.ldf文件。
从 X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates
至
X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
注:以上“X:\Program Files\Microsoft SQL Server”为SQL Server的安装目录。
4、使用everything找到setup.exe
由于数据库版本不一样,所以需要找特定目录下的setup.exe文件
目录下有SqmApi.dll、1033_ENU_LP等文件
2014版本路径的在 C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\SQLServer2014
2019版本的路径在 C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\SQL2019
其他版本的需要用everything去寻找,一定要注意不要找错了文件。
右键点击文件,点击打开文件路径,复制文件的完整路径
附:everything提取链接


5、执行命令
打开cmd命令窗口
输入命令:
Cd C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\SQLServer2014
注意:此路径为第4步复制的完整路径

如果安装的数据库只是Windows身份验证模式,只需要如下语法即可:
setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=<instance name> /SQLSYSADMINACCOUNTS=<accounts>
如果是复合身份验证模式,则需要使用/SAPWD参数提供sa的密码:
setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=<instance name> /SQLSYSADMINACCOUNTS=<accounts> /SAPWD=<sa password>
我安装时设置的是复合认证模式,SQL Server系统管理员帐号是administrators组,sa密码是123456。并且就一个默认实例: MSSQLSERVER
所以在命令行执行如下命令:
setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrators /SAPWD=123456
如果和我一样设置的,直接复制上面的红色命令,粘贴进cmd窗口,按下Enter。
执行大约需要1-2分钟,期间不要关闭cmd窗口,等待完毕后没有任何提示信息(不管成功与否),但是可以马上在C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\Summary.txt中查看安装日志。
最后,在Sql Server Configuration Manager中启动SQL Server服务成功。
相关资料可以搜索:
传递给数据库 'model' 中的日志扫描操作的日志扫描号无效
SQLServer建立连接时出现与网络相关的特定于实例的错误 和 请验证实例名称是否正确并且SQLServer已配置为允许远程连接
重建SqlServer系统数据库
相关资料链接:

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)