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

Linux环境下SQL Server 2019开发版还原数据库路径错误问题

报错原因

你使用的备份文件来自Windows环境下的SQL Server实例,备份文件内默认记录了原始数据库的数据文件(.mdf)、日志文件(.ldf)的Windows本地路径(即报错提示的F盘路径)。Linux系统不存在Windows盘符格式的路径,也没有对应的目录结构,因此触发路径查找失败的报错,需要通过WITH MOVE参数手动指定Linux环境下的合法存储路径。

解决步骤
  • 第一步:查询备份文件内的逻辑文件名,执行以下命令:
    sqlcmd -S localhost -U SA -Q "RESTORE FILELISTONLY FROM DISK = N'/var/opt/mssql/data/cliente.bak'"
    
    执行后从返回结果中确认LogicalName列的两个值,正常情况下分别为cliente(数据文件逻辑名)、cliente_log(日志文件逻辑名),后续还原命令需要用到这两个名称。
  • 第二步:确认Linux下SQL Server的合法存储目录,默认官方数据目录为/var/opt/mssql/data/,该目录默认已配置好mssql用户的读写权限,无需额外调整权限。
  • 第三步:使用带WITH MOVE参数的命令执行还原:
    sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [prueba] FROM DISK = N'/var/opt/mssql/data/cliente.bak' 
    WITH FILE = 1, 
    MOVE N'cliente' TO N'/var/opt/mssql/data/prueba.mdf',
    MOVE N'cliente_log' TO N'/var/opt/mssql/data/prueba_log.ldf',
    NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"
    
    说明:MOVE后接第一步查到的逻辑文件名,TO后接Linux环境下的实际存储路径,文件名可根据需求自行修改。
  • 第四步:输入SA账户密码等待还原完成即可。
额外注意事项
  • 若需自定义存储路径,必须提前将路径的所有者和用户组修改为mssql,执行命令:chown -R mssql:mssql <自定义目录绝对路径>
  • 若还原后不需要继续追加事务日志还原,可将命令中的NORECOVERY参数替换为RECOVERY,还原完成后数据库即可直接正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:54:07