是否可以在不启动 SQL-Server 的情况下更改 temp.mdf 或其他文件的位置?
我想重新激活一台旧服务器,但其中一个 USB 硬盘已经在别处使用了。现在我无法在配置管理器中启动 SQL-Server 服务。
事件日志有以下条目:
Event Type: Error
Event Source: MSSQLSERVER
Event Category: (2)
Event ID: 17207
Date: 30.08.2011
Time: 15:53:10
User: N/A
Computer: SQLSERV
Description:
FCB::Open: 创建或打开文件“M:\temp.mdf”时出现系统故障 3(未发现错误)。诊断并纠正您的经营系统故障,并消除您的疑虑。
问:那么,如何在不启动 SQL-SERVER 服务的情况下更改引用不存在驱动器的数据库文件的位置?我在配置管理器中没有看到选项。或者 SQL-Server 中是否存在某种“安全模式”?
答案1
我假设不仅仅是你的 temp.mdf 丢失了,而且你所有其他系统数据库也丢失了……
有一种安全模式,叫做"master-only recovery mode"
。能否使用取决于你是否备份了丢失硬盘上的数据库。
如果你有数据库实例“数据”文件夹的备份,那么本文有一些有用的信息在“故障恢复程序“部分。我还会查看“移动主数据库和资源数据库“。您可以在不启动 SQL Server 的情况下按照此处的步骤操作吗?
如果没有的话,你可以玩启动选项。sql server 进程具有启动选项,用于指定备用主数据库位置。您还可以在此处更改注册表中的启动选项:(HKLM\Software\microsoft\microsoft sql server\MSSQL.1\mssqlserver\parameters
假设这是您安装的第一个或唯一的数据库实例)。
如果你不备份了数据文件夹,那么你应该看看重建主数据库,这涉及使用原始安装的日志再次运行 SQL 服务器安装程序。
编辑:是否只是丢失硬盘上的临时数据库?如果是这样,您可能能够进入仅主恢复模式并移动临时数据库,如第一个链接在下面 ”故障恢复程序“步骤 1-2。然后按照底部如何移动 tempdb 的示例进行操作。
答案2
我认为您不能,除非有一个特殊的启动顺序,即 master-only。用户数据库未安装在此顺序中,并且我认为 TempDB 未创建在此顺序中。
是否可以临时提供一个具有适当权限的 M:驱动器....以便运行 SQL Server,然后将 TempDB 位置更改为可以永久工作的位置?
系统数据库 - 仅限主数据库。 http://msdn.microsoft.com/en-us/library/ms345408(v=SQL.100).aspx