Liunx安装sqlserver数据库 从0开始

332 阅读2分钟

一、系统安装宝塔面板

注意在linux安装sqlserver 要看 内存是否是 大于2g 的要不即便配置好了也无法启动 image.png

系统的安装就不在赘述,默认安装好系统开始 yum install -y wget && wget -O install.sh download.bt.cn/install/ins… && sh install.sh ed8484bec

修改面板信息

根据显示的账号密码登录

image.png 绑定宝塔账号 image.png 选择安装环境,我这边只用左边图里的三个,按需勾选

image.png

二、安装docker

1.在左侧docker栏选择安装docker

image.png

2.安装sqlserver镜像

镜像名mcr.microsoft.com/mssql/server:2019-latest

image.png

3.配置compose模板

compose模板信息,注意映射路径,三个都要

version: '3'
services:
  #服务名称
  sqlserver-db:
    #容器名称
    container_name: sqlserver-db
    #镜像名称
    image: mcr.microsoft.com/mssql/server:2019-latest
    restart: always
    #端口映射
    ports:
      - 1433:1433
    #挂载
    volumes:
      - /mssqlvol/data:/var/opt/mssql/data
      - /mssqlvol/log:/var/opt/mssql/log
      - /mssqlvol/secrets:/var/opt/mssql/secrets
    #环境变量
    environment:
      - ACCEPT_EULA=Y
      #SA用户密码长度必须至少为 8 个字符,并包含以下四组中的三组字符:大写字母、小写字母、10 位基数和符号
      - SA_PASSWORD=Sap123456789

image.png

4.添加容器

在compose界面查看容器是否开启成功

image.png

5.赋予文件夹权限

在系统根目录下会出现一个mssqlvol的文件夹
使用winscp软件右键文件夹属性赋予7777权限

image.png

6.启动容器

重新启动容器,使用winscp软件查看mssqlvol/log下是否有文件
使用工具navcat或者ssms进行连接

三、自动备份

#!/bin/bash
#设置mssql备份目录
folder=/var/opt/mssql/data/databack/
day=`date +%Y%m%d%H%M%S`
#数据库服务器,一般为localhost
host=localhost
#用户名
user=sa
#密码
password='数据库密码'
# 容器名称
containerId='sqlserver-db'

# 循环获取数据库名称
for line in $(docker exec $containerId /opt/mssql-tools/bin/sqlcmd \
   -S $host -U $user -P $password \
   -Q "select [name] from master.dbo.SysDatabases where [dbid] > 4")
do
    # 判断是否是数据库名称
    if [[ $line =~ ^[a-zA-Z0-9_]+$ && $line != 'name' && $line != 'rows' ]]; then
        echo "数据库 $line 开始备份"
        docker exec $containerId /opt/mssql-tools/bin/sqlcmd \
        -S $host -U $user -P $password \
        -Q "BACKUP DATABASE [$line] TO DISK = N'$folder$line/$line$day.bak' WITH NOFORMAT, NOINIT, NAME = N'$line Backup $day', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
    fi
done


2.在计划任务中添加shell脚本

image.png

3.运行

运行后会在data目录下生成databack目录,里面有数据库的bak备份

image.png

image.png

四、恢复数据

1.下载并打开SSMS

选择自己的数据库ip连接

image.png

2.恢复数据库

点击自己的数据库右键-任务-还原-数据库

image.png

在弹出的界面中按图中操作,选择自己备份的bak文件

我这边直接用了ERP的备份文件

注意:如果使用自己的bak文件,需要上传至sqlserver映射的文件夹内

image.png

查看bak文件中的数据库信息

image.png

image.png

选项中勾选覆盖现有数据库

image.png

等待完成,我这边数据库100多G比较慢

image.png

image.png