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 吗? |