SQL Server in Docker - 还原数据库
程序员文章站
2022-07-05 08:33:56
SQL Server in Docker 还原数据库 上一会演示了如果在Docker环境下安装SQL Server,这次我们来演示下如何还原一个数据库备份文件到数据库实例上。 使用winscp上传bak文件到linux服务器 上一回我们启动docker容器的时候使用了 v参数挂账了本地目录/hd2/ ......
sql server in docker 还原数据库
上一会演示了如果在docker环境下安装sql server,这次我们来演示下如何还原一个数据库备份文件到数据库实例上。
使用winscp上传bak文件到linux服务器
上一回我们启动docker容器的时候使用了-v参数挂账了本地目录/hd2/sqlserver2019_data到容器内目录/var/opt/mssql,所以我们只需要把文件testdb.bak上传到/hd2/sqlserver2019_data目录,docker容器即可访问。
我使用了下sql server management studio的还原功能试了下,没有成功,不知是不是ssms版本的问题。既然ssms不能还原,那就使用命令行来试试吧。
使用docker exec命令在容器内执行命令
因为sql server安装在docker容器内,所以执行命令行都需要进入到容器内。
sudo docker exec -it sqlserver2019 /bin/bash
接下来的命令全部在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
使用该命令可以把数据库的数据文件,日志文件名称显示出来。在接下来的恢复操作中有用。
使用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"'
看到restore database successfully的时候表示数据库还原成功了。让我们使用ssms看看数据库是否真的还原成功了。
可以看到数据库已经还原上去,里面的表,数据都可以正常操作。至此,数据库文件还原成功。
推荐阅读
-
SQL Server数据库的存储机制讲解
-
C#访问SQL Server数据库的实现方法
-
sql server 2008 压缩备份数据库(20g)
-
sql server2005实现数据库读写分离介绍
-
在sqlserver2005中安装sql server 2000的示例数据库northwind的方法
-
Sql Server2005实现远程备份数据库
-
MSSQL2005在networkservice权限运行附加数据库报(Microsoft SQL Server,错误: 5120)
-
sql2005附加数据库操作步骤(sql2005还原数据库)
-
SQL Server 2008服务器角色和数据库角色
-
如何在SQL Server 2005数据库中导入SQL Server 2008的数据