SQL Server Instance无法启动了, 因为TempDB所在的分区没有了, 怎么办?

我的SQL 2014的虚拟机在迁移的时候, 存放TempDB的LUN被删掉了. 在虚拟机的操作系统启动了之后, SQL Server Instance却启动不起来了. 检查Event Log, 报错.

于是, 找到了这篇文章. 其目标是强制SQL Server启动, 并允许接收sqlcmd的修改一些选项的命令.  一旦SQL可以接受命令, 那我们就可以重新指定tempdb的路径了.

 

然而, 使用文章中的步骤, 我还是无法强制启动SQL Server.

检查Sqlservr.exe /f /c的输出, 发现报错如下:

2014-09-18 15:51:36.88 spid10s     Clearing tempdb database.
2014-09-18 15:51:36.89 spid10s     Error: 5123, Severity: 16, State: 1.
2014-09-18 15:51:36.89 spid10s     CREATE FILE encountered operating system erro
r 3(The system cannot find the path specified.) while attempting to open or crea
te the physical file ‘E:\SQLDatabaseData\tempdb.mdf‘.
2014-09-18 15:51:36.89 spid10s     Error: 5123, Severity: 16, State: 1.
2014-09-18 15:51:36.89 spid10s     CREATE FILE encountered operating system erro
r 3(The system cannot find the path specified.) while attempting to open or crea
te the physical file ‘F:\SQLServerDatabaseLog\templog.ldf‘.
2014-09-18 15:51:36.90 spid10s     Error: 17204, Severity: 16, State: 1.
2014-09-18 15:51:36.90 spid10s     FCB::Open failed: Could not open file E:\SQLD
atabaseData\tempdb.mdf
for file number 1.  OS error: 3(The system cannot find th
e path specified.).
2014-09-18 15:51:36.91 spid10s     Error: 5120, Severity: 16, State: 101.
2014-09-18 15:51:36.91 spid10s     Unable to open the physical file "E:\SQLDatab
aseData\tempdb.mdf
". Operating system error 3: "3(The system cannot find the pat
h specified.)".
2014-09-18 15:51:36.91 spid10s     Error: 1802, Severity: 16, State: 4.
2014-09-18 15:51:36.91 spid10s     CREATE DATABASE failed. Some file names liste
d could not be created. Check related errors.
2014-09-18 15:51:36.91 spid10s     Could not create tempdb. You may not have eno
ugh 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.
2014-09-18 15:51:36.92 spid15s     The SQL Server Network Interface library succ
essfully deregistered the Service Principal Name (SPN) [ MSSQLSvc/SQL2014-1.SPS.
P51359 ] for the SQL Server service.

看来即使是强制启动SQL, tempdb文件所在的原始路径还是需要存在的. 于是笔者给这台虚拟重新分配了两个虚拟硬盘. 把相应路径都建立好. SQL Server Instance终于可以强制启动了.

后面照着文章所讲的步骤就可以成功解决问题了.

 

========================

为方便将来查找和防止原文的丢失, 我把重要的步骤列在这里:

Following are the steps needed to add a new file to TEMPDB and then restart SQL Server.

1)   Open command prompt window #1 as ADMIN and go to the BINN directory where SQL Server is installed. This is typically in

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn

OR

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn

2) Then execute command like

Sqlservr.exe /f /c

3)   Then open one more command window #2 and if this is a default instance then open SQLCMD  using the following command

SQLCMD –S localhost –E

4)   This will open a SQL command prompt there where you can type the following commands

1> USE MASTER

2> GO

3> ALTER DATABASE tempdb MODIFY FILE

4> (NAME = tempdev, FILENAME = ‘C:\NEWPATH\datatempdb.mdf‘)

5> GO

6> quit

5)   Now go back to Command window #1 and hit CTRL C.It will ask if you want to stop the instance. Y/N. Enter Y

 

6)   Now start the SQL Server instance from configuration manager. You should see the new data file created and SQL Server started.

 

参考资料

========================

How to start SQL Server if you lost TEMPDB Data files?

http://blogs.xtivia.com/home/-/blogs/how-to-start-sql-server-if-you-lost-tempdb-data-files-

时间: 2024-10-29 19:08:13

SQL Server Instance无法启动了, 因为TempDB所在的分区没有了, 怎么办?的相关文章

修改Windows帐户密码,导致Sql Server 2000无法启动

修改Windows帐户密码,导致Sql Server 2000无法启动. --现象以管理员或同等权限用户登录 Windows XP,建立 Sql Server 2000 数据库.之后,在修改此 Windows 帐户密码后,Sql Server 2000 不能启动,出错提示为:“未能建立与数据库的连接.原因:Sql Server 不存在或访问被拒绝”.“发生错误1069,由于登录失败而无法启动服务.” --原因因为被修改密码的帐户与建立数据库是同一个帐户.默认情况下,建立数据库的帐户被用作启动数据

在Windows8下安装SQL Server 2005无法启动服务

因为尝鲜安装了Windows8,的确很不错,唯一的遗憾就是不支持Sql Server 2005的安装.找了很多办法,基本上都有缺陷.现在终于找到一种完全正常没有缺陷的办法了,和大家分享一下. 0.一定要使用Administrator用户安装,否则可能出任何意想不到问题(我半天时间就这样浪费了). 1.正常安装任一版本的SQL Server 2005. 2. 安装到SqlServer服务的时候提示启动服务失败,这里就是关键啦,下载本文的两个附件,里面是SP4(2005.90.5000.0)版本的

【转】Win8下安装SQL Server 2005无法启动服务

安装了Windows8,但是发现不支持Sql Server 2005的安装.网上找了很多办法,基本上都有缺陷.现在终于找到一种完全正常没有缺陷的办法了,和大家分享一下. 1.正常安装任一版本的SQL Server 2005. 2.安装到SqlServer服务的时候提示启动服务失败,这里就是关键啦,下载本文的两个附件,里面是SP4(2005.90.5000.0)版本的sqlservr.exe和sqlos.dll.32位下载sqlservr32.rar,64位下载sqlservr64.rar. sq

SSMS 远程连接SERVER 设置 - Unable to connect to SQL Server instance remotely

问题描述: 新装了一台SERVER,在SERVER本地打开SSMS链接sever,一且正常.但是用我自己local去链接的时候出现以下错误. A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name

SogouCloud.exe进程导致SQL Server服务无法启动

早上打开笔记本想开启SQL Server服务时报错,于是根据提示查看windows日志: 依次点开报错发现第一条是1433端口被占用,于是找相关的进程: 于是杀掉此进程: taskkill /pid 6740 然后启动SQL Server服务成功.

金碟 ERP SQL Server (MSSQLSERVER) 服务启动失败

背景介绍:最近公司在上线金碟ERP,服务器是用的是之前的环境(dell FS12TY + windows 2012 r2 + MSSQL2008 +kingdee kis 旗舰版). 问题: 金碟ERP 无法登录 手动启动故障提示:由于下列错误,SQL Server 代理 (MSSQLSERVER) 服务启动失败: 由于登录失败而无法启动服务. SQLSERVERAGENT 服务无法使用当前配置的密码以 .\administrator 身份登录,错误原因如下: 用户名或密码不正确. 问题分析/总

在Windows2012下安装SQL Server 2005无法启动服务的解决办法

虚拟机环境中,用了Windows Server2012,安装SQL SERVER 2005的过程中,总是提示无法启动服务,各种搜索,做了以下尝试: 1.修改IP网络设定. 2.VIA网络禁用. 3.修改CPU核数为2的整数倍等方式. 4.修改SQL SERVER服务的登录方式等,都没有解决, 最后发现了这篇文章,采用替换SQL的关键文件就能解决问题. 因为尝鲜安装了Windows2012,的确很不错,唯一的遗憾就是不支持Sql Server 2005的安装.找了很多办法,基本上都有缺陷.现在终于

SQL SERVER 2008 无法启动T-SQL调试的解决方法

将 Windows 登录帐户添加为 sysadmin 默认情况下,运行 SQL Server 的计算机上的 Windows 管理员就是该计算机上的 SQL Server 系统管理员 (sysadmin). 例如: sp_addsrvrolemember 'guangzhou\lucy.l', 'sysadmin'  -- 'guangzhou\lucy.l'为域名和用户名 添加后就可以单步调试SQL了,2008还是有些亮点的.

SQL SERVER 2014无法启动T-SQL调试的解决方法(亲自实践)

将 Windows 登录帐户添加为 sysadmin 已经具有 sysadmin 特权的用户必须执行以下命令: sp_addsrvrolemember 'Domain\Name', 'sysadmin' 其中,Domain\Name 表示 Windows 登录帐户. 默认情况下,运行 SQL Server 的计算机上的 Windows 管理员就是该计算机上的 SQL Server 系统管理员 (sysadmin). 例如:exec sp_addsrvrolemember 'aaa-PC\Admi