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

带短横线名称的SQL Server数据库跨平台恢复失败求助

带短横线名称的SQL Server数据库跨平台恢复失败求助

嘿,我懂你遇到的这个糟心问题了!从Windows SQL Server备份带短横线的数据库,恢复到Linux版SQL Server时踩了逻辑文件名的坑——这事儿确实很容易搞错,我帮你捋清楚问题根源和解决办法:

问题出在哪儿?

你执行的RESTORE FILELISTONLY其实已经给出了关键线索,但你在恢复命令里用错了文件名类型:

  • 从输出能看到,数据库的逻辑文件名是my-awesome-database(数据文件)和my-awesome-database_log(日志文件)
  • 但你在RESTORE DATABASE的MOVE参数里写的是my-awesome-database.mdf和my-awesome-database_log.ldf——这是Windows上的物理文件名,不是SQL Server识别的逻辑文件名,所以才会报错说找不到对应逻辑文件。

正确的恢复命令

把MOVE后面的逻辑名替换成FILELISTONLY输出里的LogicalName值,修正后的命令如下:

RESTORE DATABASE [my-awesome-database] 
FROM DISK = '/tmp/my-awesome-database_FULL_20230810_000209.bak' 
WITH REPLACE, 
MOVE 'my-awesome-database' TO '/var/opt/mssql/data/my-awesome-database.mdf', 
MOVE 'my-awesome-database_log' TO '/var/opt/mssql/data/my-awesome-database_log.ldf';

额外提个醒

不管数据库名有没有短横线,MOVE参数都必须指定逻辑文件名,而不是物理文件名。之前不带短横线的数据库能成功,大概率是因为那些数据库的逻辑名刚好和物理文件名(去掉后缀)一致,这次带短横线的数据库逻辑名没有后缀,就把这个隐藏问题暴露出来了。

另外你指定的Linux路径是没问题的,只要SQL Server服务对该路径有读写权限就ok~

备注:内容来源于stack exchange,提问作者snuk182

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:44:32