docker sqlserver恢复备份
1.docker exec -it mssql mkdir /var/opt/mssql/backup
2.docker cp xx.bak mssql:/var/opt/mssql/backup
3.在容器中运行 sqlcmd,列出备份中的逻辑文件名和路径。 这是通过“RESTORE FILELISTONLY”Transact-SQL 语句实现的。
docker exec -it mssql /opt/mssql-tools/bin/sqlcmd -S localhost \
-U SA -P ‘Pass@w0rd’ \
-Q ‘RESTORE FILELISTONLY FROM DISK = “/var/opt/mssql/backup/myexcel_top20.bak”‘ \
| tr -s ‘ ‘ | cut -d ‘ ‘ -f 1-2
返回
myexcel_top20 C:\Program
myexcel_top20_log C:\Program
4.调用 RESTORE DATABASE 命令,还原容器中的数据库。 为上一步中的每个文件指定新路径。
docker exec -it mssql /opt/mssql-tools/bin/sqlcmd \
-S localhost -U SA -P ‘Pass@w0rd’ \
-Q ‘RESTORE DATABASE myexcel FROM DISK = “/var/opt/mssql/backup/myexcel_top20.bak” WITH MOVE “myexcel_top20” TO “/var/opt/mssql/data/myexcel_top20.mdf”, MOVE “myexcel_top20_log” TO “/var/opt/mssql/data/myexcel_top20_log.ldf”‘
这一步报错了。。没搞定
Msg 3132, Level 16, State 1, Server mssql, Line 1
The media set has 2 media families but only 1 are provided. All members must be provided.
Msg 3013, Level 16, State 1, Server mssql, Line 1
RESTORE DATABASE is terminating abnormally.
5.还可以通过下载一个工具恢复,尝试一下SSMS

感觉应该是文件的问题吧
参考:(23条消息) Docker环境下SqlServer数据库使用bak文件还原_gzt19881123的专栏-CSDN博客_docker sqlserver 还原