常见问题 SQL Server备份还原文件映射
还原时提示找不到数据库文件怎么办
还原报「找不到数据库文件」的原因(逻辑名与目标路径不一致),用 RESTORE FILELISTONLY 核对后用 WITH MOVE 重映射。
发布于 2026/11/11
所属频道 SQL Server
简短答案
通常是备份里记录的数据文件路径在目标机器上不存在。用 RESTORE FILELISTONLY 查看备份内的逻辑名,再用 WITH MOVE 把逻辑名重映射到目标机器的实际路径。
排查步骤
- 查看备份内文件逻辑名与原始路径:
RESTORE FILELISTONLY FROM DISK = N'D:\backup\库名.bak';
- 重映射后还原:
RESTORE DATABASE 库名 FROM DISK = N'D:\backup\库名.bak'
WITH MOVE N'逻辑数据名' TO N'D:\data\库名.mdf',
MOVE N'逻辑日志名' TO N'D:\data\库名_log.ldf';
- 在 SSMS 图形界面里:还原数据库向导 → 选择页面查看「逻辑文件名」列,逐个在「物理文件名」列改目标路径。
- 路径所在目录不存在会再报文件相关错误,先建目录并确认服务账户有写入权限。
- 源库来自 Express 环境时,注意目标版本与 Express 授权边界,版本对照看 SQL Server 2019 Developer 条目页。
操作小结
- 先
FILELISTONLY拿逻辑名,再MOVE重映射。 - 目标目录要提前建好、权限给足。
- 逻辑名必须与备份内一致,写错还原直接失败。