Docker SQLServer还原数据库(Win2Docker)

1、把备份文件放入/容器中
/Users/xxx/MicrosoftSQLServer/backup/

2、链接数据库
连接sqlserver
docker exec -it sqlserver /bin/bash
登录sqlserver
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "dev@123,"

3、列出备份中的逻辑文件名和路径
1>restore filelistonly from disk = '/var/opt/mssql/backup/sqlserver.bak'
2>go

ps: /var/opt/mssql 为上一章挂载的数据卷

会得到类似于下面的输出(前两列)
LogicalName PhysicalName
sqlserver d:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAsqlserver.mdf ...
sqlserver_log d:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAsqlserver.ldf ...

4、创建数据库
create database [sqlserver_new]
on primary (name = N'sqlserver_new', filename = N'/var/opt/mssql/data/sqlserver_new.mdf', size = 8MB, maxsize = unlimited, filegrowth = 64MB)
log on (name = N'sqlserver_new_log', filename = N'/var/opt/mssql/data/sqlserver_new.ldf', size = 8MB, maxsize = unlimited, filegrowth = 64MB )
go

5.调用 restore database 命令,还原容器中的数据库 。 为上一步中的每个文件指定新路径
restore database sqlserver_new from disk = '/var/opt/mssql/backup/sqlserver.bak' with
move 'sqlserver_new' to '/var/opt/mssql/data/sqlserver.mdf',
move 'sqlserver_new_log' to '/var/opt/mssql/data/sqlserver.ldf',replace
go

原文地址:https://www.cnblogs.com/personal-blog/p/14380821.html