zoukankan      html  css  js  c++  java
  • SQL Server in Docker

    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看看数据库是否真的还原成功了。

    可以看到数据库已经还原上去,里面的表,数据都可以正常操作。至此,数据库文件还原成功。

  • 相关阅读:
    番茄土豆:小小生产力工具
    ubuntu下thrift的安装
    番茄工作法:试试看?
    python利用thrift连接hive
    如何预测用户query意图 « 搜索技术博客-淘宝
    笔记:Ubuntu下快速开始使用Python Thrift | 孙立文的博客
    hive使用
    checkout centos is x86_64 or 32bit
    溢泰的休閒世界 溢泰的 CentOS 5.x 系統與內建軟體安裝筆記整理
    番茄工作法_Feisky_新浪博客
  • 原文地址:https://www.cnblogs.com/kklldog/p/sqlserver_in_docker_restore.html
Copyright © 2011-2022 走看看