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

Ubuntu系统下MSSQL Server恢复bak文件失败求助

解决SQL Server数据库恢复路径错误问题

问题原因

你的备份文件demodb.bak中保存了原数据库(WideWorldImporters)在Windows系统的存储路径(D盘的那个路径),但当前你在Ubuntu系统上执行恢复,该路径不存在,因此触发错误。

解决步骤

1. 查看备份文件中的文件信息

先执行以下命令,获取备份里的逻辑文件名和原始存储路径:

sqlcmd -S localhost -U SA -Q "RESTORE FILELISTONLY FROM DISK = N'/var/opt/mssql/data/demodb.bak'"

执行后会输出类似结果(逻辑名可能为WideWorldImporters和WideWorldImporters_log):

LogicalName PhysicalName


WideWorldImporters D:\Program Files\Microsoft SQL Server\MSSQL13.SQL16\MSSQL\DATA\WideWorldImporters.mdf
WideWorldImporters_log D:\Program Files\Microsoft SQL Server\MSSQL13.SQL16\MSSQL\DATA\WideWorldImporters.ldf

2. 使用MOVE子句指定新路径恢复

根据第一步得到的逻辑名,修改恢复命令,用MOVE将每个文件映射到Ubuntu的/var/opt/mssql/data/路径下:

sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [demodb] FROM DISK = N'/var/opt/mssql/data/demodb.bak' WITH FILE = 1, NOUNLOAD, REPLACE, RECOVERY, STATS = 5, MOVE N'WideWorldImporters' TO N'/var/opt/mssql/data/demodb.mdf', MOVE N'WideWorldImporters_log' TO N'/var/opt/mssql/data/demodb.ldf'"

注意:

  • 把命令中的WideWorldImporters和WideWorldImporters_log替换成你实际查询到的逻辑名
  • 将NORECOVERY改为RECOVERY,若不需要后续还原日志,这样恢复完成后数据库即可直接使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:58:13