zoukankan      html  css  js  c++  java
  • 在Docker上安装MSSQL

    在Docker上安装MSSQL主要包含了以下几个步骤:

      1.下载镜像

      2.创建容器并运行

      3.安装SQL客户端

      4.执行SQL还原DB

    约定:

      1.宿主主机Win10

      2.虚拟机Centos,Centos版本必须>=7.0,本文使用7.6版本

      3.容器安装到虚拟机里面

      4.容器名称为mssql2017

      5.mssql秘密设定为TYdemo@2020

      6.虚拟机目录 /opt/mssql 映射到容器 /var/opt/mssql ,里面包含了 data,log

    准备:

      mkdir /opt/mssql/

      mkdir /opt/mssql/backup

      win10备份一个SQL库,暂定取名为AAA_v3.bak

    操作:

      1.下载镜像

        docker pull microsoft/mssql-server-linux

      2.启动容器

        docker run --name mssql2017 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=TYdemo@2020' -p 14330:1433 --restart=always -v /opt/mssql/:/var/opt/mssql -d microsoft/mssql-server-linux

        启动代理

          docker exec -it mssql2017 /bin/bash

          /opt/mssql/bin/mssql-conf set sqlagent.enabled true

          保存退出

        重启服务

          systemctl restart mssql-server.service

      3.备份准备

        cp 数据库备份文件到虚拟机/opt/mssql/backup/目录,备份名叫名称不变

      4.客户端安装

        curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo

        yum install -y mssql-tools

      5.环境变量

        echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

        echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

        source ~/.bashrc

      6.端口放行

        注意:基于iptables和firewall-cmd的操作方式略为不同,端口14330放行,具体操作省略;此处可用natcat连接测试了。

      7.查看备份

        查看备份逻辑名称,口令如下:

          sqlcmd -S '127.0.0.1,14330' -U SA -P 'TYdemo@2020' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/AAA.bak"' | tr -s ' ' | cut -d ' ' -f 1-2

          LogicalName PhysicalName

          ----------------------------------------------------------------------------------------------------------------

          AAA_v1 D:SqlDatadataMSSQL11.MSSQLSERVERMSSQLDATAAAA_v3.mdf

          AAA_v1_log D:SqlDatadataMSSQL11.MSSQLSERVERMSSQLDATAAAA_v3_1.ldf

        注意红色出名字

      8.DB还原

        8.1SQL方式还原

    RESTORE DATABASE [AAA_v3] FROM DISK = N'/var/opt/mssql/backup/AAA_v3.bak'
    WITH FILE = 1, MOVE N'AAA_v1' TO N'/var/opt/mssql/data/AAA_v3.mdf',
    MOVE N'AAA_v1_log' TO N'/var/opt/mssql/data/AAA_v3_1.ldf', NOUNLOAD, REPLACE, STATS = 5

        8.2SQLCMD方式还原      

    sqlcmd -S '127.0.0.1,14330' -U SA -P 'TYdemo@2020' 
    -Q 'RESTORE DATABASE [AAA_v3] FROM  DISK = N"/var/opt/mssql/backup/AAA_v3.bak" 
    WITH  FILE = 1,  MOVE N"AAA_v1" TO N"/var/opt/mssql/data/AAA_v3.mdf",  
    MOVE N"AAA_v1_log" TO N"/var/opt/mssql/data/AAA_v3_1.ldf",  NOUNLOAD,  REPLACE,  STATS = 5'

        8.3SSMS方式还原

          和在Window提供的MSSQL服务的还原模式一模一样;区别在于选择备份集的路径为Linux下面的路径格式,MDF,LDF文件指定的路径应符合Linux的路径格式

        8.4连接测试

          通过前面的操作基本可以实现数据的访问了。

      9.操作结束

        

        

  • 相关阅读:
    原型设计
    案例分析
    编程作业
    《构建之法》阅读任务
    2021.3.11 准备工作随笔
    课程总结
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周课程总结
    第十二周
    第十一周课程总结
  • 原文地址:https://www.cnblogs.com/oumi/p/14057610.html
Copyright © 2011-2022 走看看