我需要一些紧急帮助。我的一个主要数据库服务器瘫痪了,正在绞尽脑汁想如何修复它。上周达拉斯发生了连环停电事件,从那时起,Microsoft SQL 2005 SP2 就无法启动了。我收到以下错误(启动服务和尝试执行 mssqlsrv.exe -c -f -m 时均出现此错误):
事件类型:错误 事件来源:MSSQLSERVER 事件 ID:913 无法找到数据库 ID 3。数据库可能尚未激活或可能处于转换状态。数据库可用后重新发出查询。如果您认为此错误不是由于数据库正在转换其状态而导致的,并且此错误继续发生,请联系您的主要支持提供商。请准备好查看 Microsoft SQL Server 错误日志以及与错误发生时的情况相关的任何其他信息。
和...
事件类型:信息 事件来源:MSSQLSERVER 事件 ID:1814 无法创建 tempdb。您可能没有足够的可用磁盘空间。删除 tempdb 驱动器上的其他文件以释放更多磁盘空间,然后重新启动 SQL Server。检查事件日志中的其他错误,这些错误可能表明无法初始化 tempdb 文件的原因。
我尝试将 tempdb.mdf 重命名为 tempdb.old,但没有成功。我检查过,有 193 GB 的可用硬盘空间。还有什么可能导致此问题?服务器是否需要在其上运行 chkdsk,或者我是否需要查看数据库服务器的某个区域?
任何帮助都将不胜感激。提前谢谢您。
答案1
数据库 ID 3 是模型数据库。没有它,SQL Server 将无法启动。打开 cmdshell 并导航到 C:\program files\microsoft sql server\mssql\binn\ 文件夹(或存储 .exe 文件的任何位置)。运行“SQLSERVR.exe -c -m”这将在单用户模式下在该命令窗口中运行 SQL Server。看看这是否会启动它。不要关闭窗口。
您现在可以连接并查看 model 和 tempdb 数据库的文件应该在哪里。验证这些文件及其路径是否确实存在。您可能需要在服务器处于单用户模式时从备份中恢复 model 数据库。