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'"

浙公网安备 33010602011771号