SQL Server 无法在我的 64 位虚拟化切片上启动

SQL Server 无法在我的 64 位虚拟化切片上启动

我已经在 64 位虚拟盒上安装了 SQL Server 2008 Express,但服务无法启动。

查看事件日志我得到:

无法创建 tempdb。您可能没有足够的可用磁盘空间。删除 tempdb 驱动器上的其他文件以释放更多磁盘空间,然后重新启动 SQL Server。检查事件日志中是否有其他错误,这些错误可能表明 tempdb 文件无法初始化的原因。

有关详细信息,请参阅帮助和支持中心 http://go.microsoft.com/fwlink/events.asp

并且:

FileMgr::StartLogFiles: 创建或打开文件“e:\sql10_main_t\sql\mkmastr\databases\objfre\i386\MSDBLog.ldf”时发生操作系统错误 2(无法检索此错误的文本。原因:1815)。诊断并更正操作系统错误,然后重试操作。

注意:mdf 文件也存在类似的错误。

现在奇怪的是,没有 e 驱动器映射到此框,所以我不知道为什么它试图从这里打开文件。不知道这是否与虚拟切片有关,也许主机已映射此驱动器?

欢迎任何建议。

克里斯。

答案1

尝试以下操作(请注意,我是在 2005 Express 上执行此操作的,因此您可能需要根据需要进行调整):

打开控制台并尝试以单用户模式启动:

sqlsvr.exe -m -s <instance_name>

如果它启动了,您现在可以打开管理工作室并尝试以下操作:

-- alter the database
ALTER DATABASE tempdb MODIFY FILE ( NAME = 'tempdev', FILENAME = 'SomeWhere\Here\tempdb.mdf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = 'templog', FILENAME = 'SomeWhere\Here\templog.ldf' )

-- ensure that it has been moved
SELECT name, physical_name as CurrentLocation, state_desc
from sys.master_files
WHERE database_id IN (DB_ID('tempdev'), DB_ID('templog')

现在停止 SQL Server 并尝试从服务控制台重新启动。它应该现已成功启动。

如果确实如此,还请执行以下操作以确保在正确的位置创建新的数据库:

  1. 打开管理工作室快捷版并登录
  2. 右键单击您的服务器并选择“属性”
  3. 点击数据库设置
  4. 更改默认设置数据库位置您的 VPS 上的内容

这应该会改变默认位置

答案2

希望这对你有帮助...

为了解决此问题,您必须使用下面的命令字符串重建数据库。此命令必须从此目录运行。

C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release

设置 /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts /[SAPWD=StrongPassword]

如果您使用 Windows 身份验证,则可以像这样放弃命令的强密码部分。

设置 /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts

您可以在以下网址阅读有关该问题的更多信息http://msdn.microsoft.com/en-us/library/dd207003.aspx。希望这可以帮助到别人。

相关内容