快速运行:
当系统管理员收到model
正在恢复的错误时,第一个问题开始了。
稍后供应商尝试对数据库进行一些升级。当他们重新启动 SQL Server 时,它无法启动。
查看错误日志。我发现了以下错误
错误 数据库“模型”标记为正在恢复,并且处于不允许运行恢复的状态。错误:927,严重性:14,状态:2。无法打开数据库“模型”。它正处于恢复过程中。无法创建 tempdb。您可能没有足够的可用磁盘空间。通过删除 tempdb 驱动器上的其他文件释放额外的磁盘空间,然后重新启动 SQL Server。检查事件日志中可能指示无法初始化 tempdb 文件的原因的其他错误。
在网上搜索后在MSDN 上找到了这篇文章
Sqlservr.exe -sInstanceName -T3608 -c -f -T3609
当我尝试运行时,使用文章中的步骤启动 sql serverUse tempdb
得到错误消息。根据文章的建议,我从另一台服务器复制了 tempdb.mdf 和 templog.ldf。
现在我收到以下错误:
启动数据库“tempdb”。错误:3456,严重性:21,状态:1。无法重做日志记录 (19:45:366),事务 ID (0:0),页面 (1:16),数据库“tempdb”(数据库 ID 2 )。页面:LSN = (18:72:8),类型 = 1。日志:操作码 = 18,上下文 2,PrevPageLSN:(19:45:287)。从数据库的备份中恢复,或修复数据库。
在尝试了大量替代步骤后,能够解决问题并启动数据库。
以下是我采取的步骤:
在另一个 SQL Server 2008 R2 上,我将我的
model
和temp
db 文件移动到与我的问题服务器上相同的位置。请参阅此http://technet.microsoft.com/en-us/library/ms345408.aspx替换了我的问题服务器上的模型和 tempdb .mdf 和 .ldf 文件。我保存在另一个目录中的旧文件以防万一。
尝试启动 SQL Server 服务,验证错误消息
之后,我打开了两个单独的命令提示符窗口。
下面为了更容易,我调用第一个命令提示符 windows CPA,第二个 CPB。
Sqlservr.exe -sInstanceName -T3608 -c -f -T3609
(注意:我必须导航到二进制位置)不要忘记InstanceName
用你的替换-T3608
仅启动master
Trace Flags 文档-T3609
跳过创建tempdb
SQLCMD -E -SADMIN:Servername\InstanceName
替换为您的 ServerName\InstanceName。使用专用管理员连接sp_detach_db 'model'
然后在 CPB 中运行go
Starting 'MODEL'
消息使用 SQL Server 配置管理器或服务页面启动 SQL Server 服务。
在我能够使用 SSMS 连接之后。