阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

SQL Server in Docker 还原数据库

130次阅读
没有评论

共计 991 个字符,预计需要花费 3 分钟才能阅读完成。

上一回演示了如果在 Docker 环境下安装 SQL Server,这次我们来演示下如何还原一个数据库备份文件到数据库实例上。

使用 winscp 上传 bak 文件到 linux 服务器

上一回我们启动 docker 容器的时候使用了 - v 参数挂账了本地目录 /hd2/sqlserver2019_data 到容器内目录 /var/opt/mssql,所以我们只需要把文件 testdb.bak 上传到 /hd2/sqlserver2019_data 目录,docker 容器即可访问。
SQL Server in Docker 还原数据库
我使用了下 Sql Server Management Studio 的还原功能试了下,没有成功,不知是不是 SSMS 版本的问题。既然 SSMS 不能还原,那就使用命令行来试试吧。

使用 docker exec 命令在容器内执行命令

因为 SQL Server 安装在 Docker 容器内,所以执行命令行都需要进入到容器内。

sudo docker exec -it sqlserver2019 /bin/bash

SQL Server in Docker 还原数据库
接下来的命令全部在 sqlserver2019 容器内执行。

使用 RESTORE FILELISTONLY 命令列出备份数据文件的逻辑名

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'dev@123,' -Q 'RESTORE FILELISTONLY FROM DISK ="/var/opt/mssql/testdb.bak"' | tr -s ' ' | cut -d ' ' -f 1-2

SQL Server in Docker 还原数据库
使用该命令可以把数据库的数据文件,日志文件名称显示出来。在接下来的恢复操作中有用。

使用 RESTORE DATABASE 命令还原数据库

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'dev@123,' -Q 'RESTORE DATABASE testdb FROM DISK = "/var/opt/mssql/testdb.bak" WITH MOVE "testdb" TO "/var/opt/mssql/data/testdb.mdf" , MOVE "testdb_log" TO "/var/opt/mssql/data/testdb.ldf"'

SQL Server in Docker 还原数据库

SQL Server in Docker 还原数据库
看到 RESTORE DATABASE successfully 的时候表示数据库还原成功了。让我们使用 SSMS 看看数据库是否真的还原成功了。
SQL Server in Docker 还原数据库
可以看到数据库已经还原上去,里面的表,数据都可以正常操作。至此,数据库文件还原成功。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计991字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中