在移动一些数据库(恢复,删除等)后,我们遇到了创build新数据库的问题。 特别是,当试图创build一个新的数据库MSSQL服务器时,它失败了,因为“数据库模型”被标记为“RESTORING并且处于不允许恢复运行的状态”。 正如一些在线解决schemebuild议的,我们尝试启动和停止MSSQL服务。 服务将无法重新启动,因为“无法创buildtempdb,可能没有足够的可用磁盘空间,通过删除tempdb驱动器上的其他文件来腾出额外的磁盘空间”(仅供参考,驱动器具有100GB的可用空间)。 尝试重新启动运行MSSQL服务器的计算机。 当服务器重新联机时,我们收到了同样的错误。 我们尝试删除tempdb.mdf并从模板文件夹中恢复modeldb,但这两个都解决了这个问题。 即使在单用户模式下,我们也无法连接到数据库。 许多在线解决scheme让我们对服务器运行SQL命令,但是我们无法连接(即使在单用户模式下)到数据库以对服务器运行命令。
特定的错误消息:
数据库“模型”无法打开。 它正在恢复中。 (Microsoft SQL Server,错误:927)
SQL Server(MSSQLSERVER)服务正在启动。 SQL Server(MSSQLSERVER)服务无法启动。
发生服务特定错误:1814年。
我们需要服务器启动并尽快再次运行。
这实际上是在一段时间(早在12年7月)被微软支付的支持电话修复的。
由于这个观点已经得到了很多,所以我决定在微软的电话中增加一个我们的“电子邮件摘要”的编辑版本。
发布是一个链接到pastebin: http : //pastebin.com/QqNz7xYd
希望这个信息将帮助任何人有这个问题
Problem Description: ============================= You Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) default instance on SERVERNAME server and you were trying to start the SQL SERVER service which was failing to start. Analysis\Troubleshooting: ============================= We checked the SQLS SERVER ERRORLOG =========================== 2012-06-20 19:33:41.48 Server Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6001: Service Pack 1) 2012-06-20 19:33:41.50 Server (c) Microsoft Corporation. 2012-06-20 19:33:41.50 Server All rights reserved. 2012-06-20 19:33:41.50 Server Server process ID is 2596. 2012-06-20 19:33:41.51 Server System Manufacturer: 'HP', System Model: 'ProLiant DL360 G5'. 2012-06-20 19:33:41.51 Server Authentication mode is MIXED. 2012-06-20 19:33:41.51 Server Logging SQL Server messages in file 'D:\Mssql\Data\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG'. 2012-06-20 19:33:41.51 Server This instance of SQL Server last reported using a process ID of 2816 at 6/20/2012 6:10:15 PM (local) 6/20/2012 10:10:15 PM (UTC). This is an informational message only; no user action is required. 2012-06-20 19:33:41.51 Server Registry startup parameters: -d D:\Mssql\Data\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\master.mdf -e D:\Mssql\Data\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG -l D:\Mssql\Data\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\mastlog.ldf 2012-06-20 19:33:41.56 Server SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required. 2012-06-20 19:33:41.56 Server Detected 4 CPUs. This is an informational message; no user action is required. 2012-06-20 19:33:41.65 Server Using locked pages for buffer pool. 2012-06-20 19:33:41.88 Server Using dynamic lock allocation. Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node. This is an informational message only. No user action is required. 2012-06-20 19:33:42.33 Server Node configuration: node 0: CPU mask: 0x000000000000000f:0 Active CPU mask: 0x000000000000000f:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required. 2012-06-20 19:33:42.49 spid7s Starting up database 'master'. 2012-06-20 19:33:42.86 spid7s Resource governor reconfiguration succeeded. 2012-06-20 19:33:42.86 spid7s SQL Server Audit is starting the audits. This is an informational message. No user action is required. 2012-06-20 19:33:42.87 spid7s SQL Server Audit has started the audits. This is an informational message. No user action is required. 2012-06-20 19:33:42.87 spid7s FILESTREAM: effective level = 0, configured level = 0, file system access share name = 'MSSQLSERVER'. 2012-06-20 19:33:43.02 spid7s SQL Trace ID 1 was started by login "sa". 2012-06-20 19:33:43.03 spid7s Starting up database 'mssqlsystemresource'. 2012-06-20 19:33:43.05 spid7s The resource database build version is 10.50.1600. This is an informational message only. No user action is required. 2012-06-20 19:33:43.24 spid10s Starting up database 'model'. 2012-06-20 19:33:43.24 spid7s Server name is 'SERVERNAME'. This is an informational message only. No user action is required. 2012-06-20 19:33:43.27 spid10s The database 'model' is marked RESTORING and is in a state that does not allow recovery to be run. 2012-06-20 19:33:43.28 spid10s Error: 927, Severity: 14, State: 2. 2012-06-20 19:33:43.28 spid10s Database 'model' cannot be opened. It is in the middle of a restore. 2012-06-20 19:33:43.36 spid10s 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. 2012-06-20 19:33:43.36 spid10s SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required. =========================== From ERRORLOG we can see that SQL SERVER trying to bring model database online but since model database in recovery state hence we were unable to run database recovery. We also know that whenever SQL SERVER start we recreate TEMPDB database by coping the content from model database. Now since model database didn't started hence TEMPDB startup also failed which is one of critical system database and this caused SQL SERVER service to failed Solution: ===================================== · To fix this issue we started SQL SERVER EXE with following parameter from command prompt SQLSERVR.EXE -c -T3608 · Then after we detached model database using following T-SQL sp_detach_db model · Then after we attach the model database using following T-SQL ================================ USE MASTER GO CREATE DATABASE MODEL ON (FILENAME = 'C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MODEL.MDF') FOR ATTACH ; ================================ · After that SQL SERVER service came online successfully
你可以绕过autorecover启动sql服务吗?
net start mssqlserver /f /m /t3608
然后尝试恢复模型?
sqlcmd -e restore database model go
编辑:发现这个链接以及更深入,可能更准确..