一、系统安装宝塔面板
注意在linux安装sqlserver 要看 内存是否是 大于2g 的要不即便配置好了也无法启动
系统的安装就不在赘述,默认安装好系统开始 yum install -y wget && wget -O install.sh download.bt.cn/install/ins… && sh install.sh ed8484bec
修改面板信息
根据显示的账号密码登录
绑定宝塔账号
选择安装环境,我这边只用左边图里的三个,按需勾选
二、安装docker
1.在左侧docker栏选择安装docker
2.安装sqlserver镜像
镜像名mcr.microsoft.com/mssql/server:2019-latest
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
4.添加容器
在compose界面查看容器是否开启成功
5.赋予文件夹权限
在系统根目录下会出现一个mssqlvol的文件夹
使用winscp软件右键文件夹属性赋予7777权限
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脚本
3.运行
运行后会在data目录下生成databack目录,里面有数据库的bak备份