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 @ 2021-11-24 13:32  NavyW  阅读(542)  评论(0)    收藏  举报