SqlServer在Docker环境下还原bak文件

1.SqlServer镜像

mcr.microsoft.com/mssql/server:2017-CU25-ubuntu-16.04

2.挂载容器的/var/opt/mssql/backup目录到宿主机的/home/DataStore/Backup/HDD/storage/wanda/backup/mssql目录

3.将备份的bak文件拷贝到宿主机的/home/DataStore/Backup/HDD/storage/wanda/backup/mssql/database目录下

4.进入容器

docker exec -it k8s_mssql_mssql-6bf986b85f-wvc9s_wanda_c4e8b336-d919-4747-a0fd-8db676bdc070_0 /bin/bash

5.列出的数据文件逻辑名称

/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P '密码' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/database/xxx.bak"' | tr -s ' ' | cut -d ' ' -f 1-2

 

 6.还原数据库

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '密码' -Q "RESTORE DATABASE [数据库名称] FROM DISK = N'/var/opt/mssql/backup/database/xxx.bak' WITH MOVE 'AFMP-Product2.0-Bim_Data' TO '/var/opt/mssql/data/xxx.mdf' , MOVE 'AFMP-Product2.0-Bim_Log' TO '/var/opt/mssql/data/xxx.ldf'"

 

posted @   NavyW  阅读(447)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示