SQL Server in Docker 创建 启动 还原数据库 docker-compose


此文演示docker-compose  创建、运行、还原 SqlServer
操作系统:CentOS7.6
系统环境:Docker、Docker-Compose 关闭防火墙
 
一、创建docker-mssql.yml文件,位置/usr/local/richpencil/docker-mssql.yml
version: '3'
services:
  mssql:
    image: microsoft/mssql-server-linux:2017-latest
    ports:
      - "1433:1433"
    container_name: mssql
    volumes:
      - /usr/local/richpencil/mssql:/var/opt/mssql
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=a12345678.
      - TZ=Asia/Shanghai

注意数据库密码必须为8位长度以上,否则无法启动docker

 
二、启动mssql docker容器
此命令会自动下载sqlserver docker并启动
docker-compose -f /usr/local/richpencil/docker-mssql.yml up

 

三、放置备份文件、进入容器、成功还原
3.1将sqlserver bak文件放在linux系统的映射目录
linux系统目录为
/usr/local/richpencil/mssql/blst.bak
docker容器目录为
/var/opt/mssql/blst.bak

3.2进入docker容器

a、通过启动文件进入docker
docker-compose -f /usr/local/richpencil/docker-mssql.yml exec mssql bash
b、查看备份文件的逻辑名
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'a12345678.' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/blst.bak"' | tr -s ' ' | cut -d ' ' -f 1-  
数据逻辑名称
fl_db_birdnestle
fl_db_birdnestle_log
c、根据逻辑名进行还原
命令中指定还原数据库名、逻辑数据库名、逻辑数据库文件名、逻辑数据库日志名、逻辑数据库日志文件名、数据库密码等重要信息
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'a12345678.' -Q 'RESTORE DATABASE blst FROM DISK = "/var/opt/mssql/blst.bak" WITH MOVE "fl_db_birdnestle" TO "/var/opt/mssql/data/blst.mdf" , MOVE "fl_db_birdnestle_log" TO "/var/opt/mssql/data/blst.ldf"'  

d、通过Microsoft Sql Server Management Studo 连接数据库

服务器名称: 192.168.0.203,1433
用户:sa
密码:a12345678.  
注意连接数据库和端口之前用逗号分隔(重要!!!) 连接成功

总结:

1、安装最新版docker、docker-compose 关闭防火墙

2、创建docker-compose文件时,直接设置管理员sa密码,密码长度需大于8位

3、还原数据库之前需要先查询逻辑文件名、逻辑日志文件名

4、还原时需要保证文件的位置正确无误,数据库密码正确、逻辑名称正确

5、在还原时要注意如果有错误命令提示,有可能是硬盘空间不够导致

6、最好申请一个腾讯或阿里的docker加速地址,否则下载sqlserver docker可能会很慢或失败

7、连接sqlserver的服务器名称是ip+","+端口 而不是ip+":"+端口


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM