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

yizhihongxing

下面就是“Linux下定时自动备份Docker中所有SqlServer数据库的脚本”的攻略。

准备工作

在开始操作脚本之前,需要先进行一些准备工作。

安装mssql-cli工具

为了能够操作SqlServer数据库,需要安装mssql-cli工具。mssql-cli是微软推出的命令行工具,能够方便地连接SqlServer数据库以及执行T-SQL语句。

安装方法如下:

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-preview.list)"
sudo apt-get update
sudo apt-get install mssql-cli

创建备份目录

在Linux系统中,所有的备份文件都需要存储在一个备份目录下。可以通过如下命令创建一个名为/backup的备份目录:

sudo mkdir /backup
sudo chmod 777 /backup

现在,我们已经完成了所有的准备工作,可以开始操作脚本了。

操作脚本

STEP 1:编写备份脚本

创建一个名为backup.sql的文件,并输入如下脚本:

DECLARE @dbname varchar(255)
DECLARE @filename varchar(255)

DECLARE db_cursor CURSOR FOR  
SELECT name FROM MASTER.dbo.sysdatabases  
WHERE name NOT IN ('master','model','msdb','tempdb');  

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @dbname   

WHILE @@FETCH_STATUS = 0   
BEGIN   
       SET @filename = '/backup/' + @dbname + '_' + CONVERT(VARCHAR(8), GETDATE(), 112) + '.bak'
       BACKUP DATABASE @dbname TO DISK = @filename WITH INIT, SKIP, NOFORMAT

       FETCH NEXT FROM db_cursor INTO @dbname   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor

这段脚本的作用是备份所有的SqlServer数据库,并将备份文件存储在/backup目录下。备份文件的命名格式为数据库名_备份日期.bak

STEP 2:创建备份脚本

将上述脚本保存为backup.sql文件,并将其存储在本地。

STEP 3:创建定时任务

接下来,我们需要创建一个定时任务来定期执行备份脚本。

打开Linux系统中的定时任务文件:

sudo crontab -e

然后在文件的末尾添加一行:

0 2 * * * /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P your_password -i /path/to/backup.sql

这行命令的含义是:每天凌晨2点执行备份脚本/path/to/backup.sql。其中,-S参数指定连接的SqlServer数据库,-U-P参数指定连接的用户名和密码。

示例说明1

如果我们需要每小时备份SqlServer数据库,可以将定时任务改为:

0 * * * * /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P your_password -i /path/to/backup.sql

这行命令的含义是:每小时执行备份脚本/path/to/backup.sql

示例说明2

如果需要将备份文件存储在其他目录中,可以修改备份脚本中的备份路径。例如,将备份文件保存在/data/backup目录中:

SET @filename = '/data/backup/' + @dbname + '_' + CONVERT(VARCHAR(8), GETDATE(), 112) + '.bak'

然后将定时任务中的备份脚本路径修改为:

0 2 * * * /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P your_password -i /path/to/backup.sql

这样,每天凌晨2点备份的文件就会存储在/data/backup目录中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux下定时自动备份Docker中所有SqlServer数据库的脚本 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • MySQL中Replace语句用法实例详解

    下面我就详细讲解一下“MySQL中Replace语句用法实例详解”的攻略。 什么是Replace语句 Replace语句是用于替换/更新表中数据的MySQL命令。该命令可以替换掉已有的记录,如果记录不存在,则会插入一条新记录。语法如下: REPLACE [LOW_PRIORITY | DELAYED] [INTO] table_name [(col_name…

    database 2023年5月22日
    00
  • 彻底解决MySQL使用中文乱码的方法

    关于如何彻底解决MySQL使用中文乱码的问题,可以从以下几个方面来考虑: 问题原因分析 MySQL使用中文乱码的问题主要是由于MySQL默认字符集和应用程序字符集不一致导致的。MySQL默认字符集为latin1,而大部分应用程序一般采用UTF-8字符集,这就容易出现中文乱码的问题。 解决方法1:修改MySQL默认字符集 可以通过修改MySQL默认字符集来解决…

    database 2023年5月22日
    00
  • centos 6.5 oracle开机自启动的环境配置详解

    CentOS 6.5 Oracle 开机自启动的环境配置详解 本文将介绍在 CentOS 6.5 系统下如何配置 Oracle 数据库的开机自启动环境。 环境准备 在开始配置之前,请确保您已经满足以下基本环境要求: 已经安装了 CentOS 6.5 系统 已经安装了 Oracle 数据库 步骤一:创建启动脚本 在 /etc/init.d/ 目录下创建一个名为…

    database 2023年5月22日
    00
  • 与MSSQL对比学习MYSQL的心得(六)–函数

    针对您的问题,“与MSSQL对比学习MYSQL的心得(六)–函数”的完整攻略如下: 一、MySQL函数介绍 MySQL内置了丰富的函数来满足不同的数据处理需求,包括字符串函数、数学函数、日期时间函数、聚合函数等。MySQL的函数采取与MSSQL类似的方式使用,即采取函数的名称+参数(如果有)的形式进行调用,函数名称不区分大小写,但建议采用大写形式书写,以便…

    database 2023年5月21日
    00
  • redis master配置了密码进行主从同步

    1.如果master不设置密码,那么直接在slave服务器配置slaveof即可 配置如下 #slaveof ip 端口 slaveof 221.224.85.186 6379  配置好我们看下redis的日志 看是否同步成功 5014:S 25 Jan 10:53:53.667 * Connecting to MASTER 221.224.85.186:6…

    Redis 2023年4月13日
    00
  • 解析Mysql多表查询的实现

    解析Mysql多表查询的实现 在MySQL中,多表查询是一种常见的查询方式,可以通过将多张表按照特定的关联方式联系在一起,得到更加全面的数据信息。本文将对多表查询的常见实现方式进行介绍,并提供两个具体的示例。 常见的多表查询实现方式 MySQL中常见的多表查询方式包括以下几种: 1. 内连接查询 内连接查询(INNER JOIN)是将所有符合连接条件的数据从…

    database 2023年5月22日
    00
  • Yanza 和 YugabyteDB 的区别

    Yanza和YugabyteDB都是开源的分布式SQL数据库,它们的设计初衷都是要解决高并发、高可用、高性能、可扩展性等问题,但是它们的实现方式、架构、特点等又有所区别。 Yanza Yanza是一个基于TiDB的轻量级查询中间件,它可以作为MySQL的代理,接收MySQL的请求,并将请求转发给后端的TiDB。Yanza主要解决以下问题: 避免每个应用程序都…

    database 2023年3月27日
    00
  • redis 缓存验证码 步骤

    1. 安装redis https://redis.io/download 根据官网的教程就行操作: $ wget http://download.redis.io/releases/redis-3.2.9.tar.gz $ tar xzf redis-3.2.9.tar.gz $ cd redis-3.2.9 $ make可能会遇到的问题是你的服务器上没有装…

    Redis 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部