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

下面就是“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日

相关文章

  • 一条sql语句完成MySQL去重留一

    下面是详细的攻略。 在MySQL中进行去重留一可以使用distinct关键字或者group by语句。使用distinct关键字通常是在查询结果列中只需要一列去重的情况下使用,而使用group by则可以在需要对多个列进行去重的情况下使用。下面分别对两个方法进行讲解。 方法1:使用distinct关键字 语法 SELECT DISTINCT column_n…

    database 2023年5月22日
    00
  • springCloud集成nacos启动时报错原因排查

    这里是“springCloud集成nacos启动时报错原因排查”的完整攻略。 1. 确认nacos服务是否正常启动 在使用nacos作为注册中心时,首先要确认的是nacos服务是否正常启动。可以通过访问nacos的管理页面,在“Server Status”页面查看是否“Server Status”为“UP”,如果不是则需要确认服务配置和启动是否正确。 2. …

    database 2023年5月18日
    00
  • MySQL中join查询的深入探究

    MySQL中Join查询的深入探究 在MySQL中,一般使用Join语句来实现多个数据表之间的查询,它可以将多个数据表连接在一起,并根据表之间的关联关系返回一并返回查询结果。在实际的应用场景中,合理的使用Join语句可以大大提升查询效率,从而优化整个系统性能。这里我们将从以下几个方面来深入探索MySQL中的Join查询: Join语句的分类 Join操作的原…

    database 2023年5月22日
    00
  • Redis–集群Cluster(槽指派、重新分片)

    转自https://www.cnblogs.com/xiang9286/p/10948614.html   集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。   1.节点 一个节点就是一个运行在集群模式下的Redis服务器。启动Redis服务器时,通过判断cluster-enabled选项,选择是否开启集群模式。(Yes开启集群,N…

    Redis 2023年4月12日
    00
  • SQL SERVER 日期格式转换详解

    SQL SERVER 日期格式转换详解 在SQL SERVER中处理日期是很常见的一个需求,但是不同的应用场景和数据格式会导致需要进行日期格式转换。本文将详细讲解SQL SERVER日期格式转换的方法和实例。 SQL SERVER日期格式 在SQL SERVER中,日期类型有多个格式,如下表所示: 数据类型 说明 存储范围 DATETIME 日期和时间 由“…

    database 2023年5月22日
    00
  • MySQL执行外部sql脚本文件的命令

    MySQL执行外部SQL脚本文件的命令主要是通过mysql客户端工具来完成的,具体步骤如下: 打开终端或命令行工具,输入以下命令登录MySQL服务器: mysql -h 主机名 -u 用户名 -p 其中,主机名为MySQL数据库所在服务器的IP地址或域名,用户名为MySQL数据库的管理员账户名,-p参数表示输入密码(输完密码后按回车键)。 进入MySQL命令…

    database 2023年5月22日
    00
  • MySQL 权限控制细节分析

    MySQL 权限控制细节分析 MySQL 是一种广泛应用于 web 开发、数据存储、数据分析等领域的关系型数据库。MySQL 的权限控制是确保数据安全的重要手段之一。本文将详细讲解 MySQL 权限控制的细节。 MySQL 用户 MySQL 有一个专门的用户系统,用于管理访问 MySQL 数据库服务器的用户。用户可以是本地用户或者远程用户。 创建用户 可以使…

    database 2023年5月22日
    00
  • 哪些情况会导致 MySQL 索引失效

    MySQL 索引是一个重要的性能优化手段,可以大大提高查询效率。但是在使用索引时,有时候会出现MySQL索引失效的情况,导致查询变慢,甚至不使用索引。下面我将针对MySQL索引失效的常见情况进行详细的讲解。 1. 索引列类型和where条件类型不匹配 MySQL在执行查询语句时,如果查询中的字段类型和索引中的字段类型不匹配,索引就会失效。比如,如果你建立了一…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部