SQL2008无法登陆一例(BUG)
1.正常启动SQLSERVER 2008服务
net start mssql$sql2008
2.使用SQL Server Management Studio 登陆SQL SERVER 2008
3.SQLSERVER 2008服务停止了
4.查看windows事件,日志如下
a.
在文件 'D:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\templog.ldf' 中、偏移量为 0000000000000000 的位置执行 读取 期间,操作系统已经向 SQL Server 返回了错误 38(已到文件结尾。)。SQL Server 错误日志和系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重系统级错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。
b.
SQL Server 断言: 文件: <"logmgr.cpp">,行=7794 失败的断言 = 'logFileSize <= BlkToByteOffset ((ULONG)-1)'。此错误可能与时间有关。如果重新运行该语句后错误仍然存在,请使用 DBCC CHECKDB 来检查数据库的结构是否完整,或重新启动服务器以确保内存中的数据结构未破坏。
c.
系统断定检查已失败。有关详细信息,请查看 SQL Server 错误日志。通常,断定失败是由软件错误或数据损坏导致的。若要检查数据库是否已损坏,请考虑运行 DBCC CHECKDB。如果您同意在安装过程中将转储发送到 Microsoft,则将向 Microsoft 发送微型转储。更新可能在 Microsoft 的最新 Service Pack 或技术支持部门的 QFE 中提供。
d.
SQL Server 无法与筛选器后台程序启动服务通信(Windows 错误: 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
)。全文筛选器后台进程无法启动。全文搜索功能将不可用。
初步判断为tempdb有问题
DBCC CHECKDB(tempdb)
最小模式模式启动服务
net start mssql$sql2008 /f
修改tempdb文件路径,修改sqlserver启动账户,修改model大小,问题依旧,有时候启动服务提示1814错误
最小模式启动
查看错误日志有一条比较吸引人
2011-12-29 14:21:24.41 spid9s Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.
2011-12-29 14:21:24.43 spid9s SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.
实际上磁盘非常充足