docker 中拉了最新的的 sqlserver 版本号显示 15.0.4198.2 下称版本 A (也尝试过 2017 也不行) Microsoft SQL Server Express 版本 15.0.2000.5 下称版本 B 目前想把版本 B 资料库导入到版本 A 的资料库 导出版本 B 的 bak 文件以后 导入到 docker 容器下 使用 MSSMS 导入时却报错
===================================
还原数据库“aers”时失败。 (Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------
程序位置:
在 Microsoft.SqlServer.Management.RelationalEngineTasks.RestoreDatabaseTaskFormComponent.PerformTask(ITaskExecutionContext context)
在 Microsoft.SqlServer.Management.RelationalEngineTasks.RestoreDatabaseTaskFormComponent.Perform(ITaskExecutionContext context)
在 Microsoft.SqlServer.Management.TaskForms.TaskExecutionManager.ExecuteTaskSequence(ISfcScriptCollector collector)
===================================
System.Data.SqlClient.SqlError: Directory lookup for the file "C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\aers.mdf" failed with the operating system error 2(The system cannot find the file specified.). (Microsoft.SqlServer.SmoExtended)
------------------------------
有关帮助信息,请单击: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=16.100.44091.28+(SMO-master-A)&LinkId=20476
------------------------------
程序位置:
在 Microsoft.SqlServer.Management.Smo.RestorePlan.Execute()
在 Microsoft.SqlServer.Management.RelationalEngineTasks.RestoreDatabaseTaskFormComponent.PerformTask(ITaskExecutionContext context)
于是找又找其他方式导入
但是依然报错
➜ ~ docker exec -it mssql /opt/mssql-tools/bin/sqlcmd -S localhost \
-U sa -P '1234' \
-Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/ares.bak"' \
| tr -s ' ' | cut -d ' ' -f 1-2
Msg 3201,
Cannot open
Msg 3013,
RESTORE FILELIST
报错代码也无法搜到有用的信息 有大佬知道这是怎么回事么
1
disk 2022-03-29 21:36:27 +08:00
可以尝试用 SSMS 连接后,能不能用图形化操作。
|
2
disk 2022-03-29 21:43:02 +08:00
第一条报错说明导入的路径不对,你直接选择本地的文件,但是在容器里是找不到的。
第二条需要先把备份拷贝进去,然后通过交互式运行指令便于排错,参考 https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-migrate-restore-database?view=sql-server-ver15 |
3
helee9199 OP @disk emm 第一个报错就是我已经把备份文件拷贝到 docker 的 sqlserver 容器目录下了 然后使用 ssms 连接了 也选择了文件 点导入 然后就报这个错
第二个是我搜的命令导入 然后报的这个错 |
5
DCCooper 2022-03-30 15:34:00 +08:00 via iPhone
1. 容器内查看文件在不在
2. 把挂载进去试试看,-v
|
6
julyclyde 2022-03-30 15:58:38 +08:00
不明白
docker 里还能运行 windows 吗? |