Linux下定时自动备份Docker中所有SqlServer数据库的脚本

准备工作

一台Linux(Centos7为例)服务器。 安装Docker服务。 安装并启动SqlServer容器服务。

编写Shell文件

给出一个备份的范例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/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
# 循环获取数据库名称
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

在Linux添加定时任务

添加定时任务需要使用到Linux的crontab服务。我们可以通过下列命令来检测并安装这个服务。

?
1
2
3
4
5
6
7
8
# 检查crontab工具是否安装
crontab -l
# 检查crond服务是否启动
service crond status
# 如果未安装服务我们需要进行安装
yum install vixie-cron
yum install crontabs

再确认安装完成后我们使用命令 crontab -e 打开crontab的编辑功能,添加如下示例:

?
1
2
3
# 定时任务 每日0点备份
# 注意别忘记 sh 命令
0 0 * * * sh /root/databack/sqlServerBackup.sh

添加完成后可以使用命令(systemctl restart crond),重启下crond服务确保服务能正常运行。

crontab格式介绍

格式: * * * * * comand(*以空格或tab隔开)

第一个* : 分钟(0–59) 第二个* : 小时(0–23) 第三个* : 日期(0–31) 第四个* : 月份(1–12) 第五个* : 星期0–7(0或者7表示星期天) comand : 要执行的操作

举例:

每晚21:30重启apache: 30 21 * * * service httpd restart 每月1、10、22日的4:45重启apache : 45 4 1,10,22 * * service httpd restart 每月1到10日的4:45重启apache : 45 4 1-10 * * service httpd restart 每隔两分钟重启apache : */2 * * * * service httpd restart 或者 1-59/2 * * * * service httpd restart 每晚11点到早上7点间,每隔1小时重启apache : 0 23-7/1 * * * service httpd restart 每晚18:00至23:00,每隔30分钟重启apache : 0,30 18-23 * * * service httpd restart 或 0-59/30 18-23 * * * service httpd restart

到此这篇关于Linux下定时自动备份Docker中所有SqlServer数据库 的文章就介绍到这了,更多相关Docker SqlServer定时自动备份内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/ykbb/archive/2022/09/27/16734907.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

使用Docker部署openGauss国产数据库的操作方法

2023-3-3 13:24:19

建站知识

小知识:Docker是什么?Docker原理及好处是什么

2023-3-3 13:27:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索