You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server服务启动失败,如何修改sys.master_files的physical_name?

解决SQL Server服务因无效磁盘路径无法启动的问题

问题本质

你遇到的是系统级数据库(model、msdb等)的物理文件路径被配置到了不存在的D盘,导致MSSQLSERVER服务启动失败。sys.master_files是系统视图,不能用ALTER TABLE直接修改,必须通过单用户模式启动实例后完成路径修正。

操作步骤

1. 停止SQL Server服务

打开服务管理器(Win+R输入services.msc),找到MSSQLSERVER服务,确保它处于停止状态。

2. 以单用户模式启动SQL Server

打开管理员身份的命令提示符,执行以下命令(默认实例直接用MSSQLSERVER,命名实例替换为你的实例名):

sqlservr.exe -s MSSQLSERVER -m -d "C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\master.mdf" -l "C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\mastlog.ldf"
  • -m:启用单用户模式,只允许一个连接
  • -d:指定master数据文件的有效路径(你从sysfiles中获取的正确路径)
  • -l:指定master日志文件的有效路径

执行后保持该命令提示符窗口打开,不要关闭。

3. 连接到实例

打开另一个管理员身份的命令提示符,执行:

sqlcmd

默认实例直接用这个命令,命名实例需要加-S <实例名>。

4. 修改系统数据库文件路径

在SQLCMD窗口中,输入以下语句(将<新路径>替换为你实际要使用的磁盘路径,比如上面的DATA目录),每段输入完后敲GO执行:

修正model数据库路径

ALTER DATABASE model MODIFY FILE (NAME = modeldev, FILENAME = '<新路径>\model.mdf');
ALTER DATABASE model MODIFY FILE (NAME = modellog, FILENAME = '<新路径>\modellog.ldf');
GO

修正msdb数据库路径

ALTER DATABASE msdb MODIFY FILE (NAME = MSDBData, FILENAME = '<新路径>\MSDBData.mdf');
ALTER DATABASE msdb MODIFY FILE (NAME = MSDBLog, FILENAME = '<新路径>\MSDBLog.ldf');
GO

修正tempdb数据库路径(建议同步修正)

ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = '<新路径>\tempdb.mdf');
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = '<新路径>\templog.ldf');
GO

5. 复制物理文件到新路径

找到错误路径中提到的model.mdf、modellog.ldf、MSDBData.mdf、MSDBLog.ldf文件,复制到你指定的<新路径>下。如果找不到这些文件,直接运行SQL Server安装程序,选择修复选项,让安装程序重新生成系统数据库到正确路径。

6. 修改注册表配置

打开注册表编辑器(Win+R输入regedit),定位到对应实例的参数路径(替换<实例ID>,比如MSSQL16.MSSQLSERVER):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<实例ID>\MSSQLServer\Parameters

修改SQLArg0和SQLArg1的数值数据:

  • SQLArg0对应-d参数,设置为master.mdf的新路径
  • SQLArg1对应-l参数,设置为mastlog.ldf的新路径

同时检查其他SQLArg项,确保没有指向无效的D盘路径。

7. 重启服务

关闭之前的单用户模式命令提示符窗口,回到服务管理器启动MSSQLSERVER服务,此时服务应该能正常启动。

验证

服务启动后,连接实例执行以下语句确认路径已修正:

SELECT name, physical_name FROM sys.master_files;

内容的提问来源于stack exchange,提问作者Hearner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:55:50