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日

相关文章

  • 查看linux服务器上mysql配置文件路径的方法

    要查看Linux服务器上MySQL配置文件的路径,可以按照以下步骤进行: 1.首先登录到Linux服务器,打开终端,输入以下命令: sudo find / -name "my.cnf" 2>/dev/null 该命令会在Linux系统中查找名为”my.cnf”的MySQL配置文件,并将结果输出到终端窗口。 2.如果MySQL服务器使…

    database 2023年5月22日
    00
  • 如何使用Python将CSV文件导入到MySQL数据库中?

    如何使用Python将CSV文件导入到MySQL数据库中? 将CSV文件导入到MySQL数据库中是一个常见的任务,Python提供了许多库来完成这个任务。在本攻略中,我们将pandas和mysql-connector-python来完成这个任务。以下是使用Python将CSV文件导入到MySQL数据库中的完整攻略。 步骤1:安装必要的库 在使用Python将…

    python 2023年5月12日
    00
  • Java 你知道什么是耦合、如何解(降低)耦合

    什么是耦合 耦合是指不同部分之间的相互依赖程度。越强的耦合意味着这些部分之间的依赖关系更强,更难以改变其中的一个部分,因为这可能会对其它部分造成影响。 在Java中,耦合通常应用于类、方法、模块之间的关系。如果一个类、方法、模块太过于依赖其它的类、方法、模块,那么就会产生很高的耦合。 如何解(降低)耦合 为了解决高耦合问题,我们需要采取一些措施,如: 1. …

    database 2023年5月21日
    00
  • 解决mybatis 执行mapper的方法时报空指针问题

    在 MyBatis 中执行 Mapper 接口方法时,可能会出现空指针问题。这种问题通常是由于 mapper 对象没有能够正确地注入导致的。为了解决这种问题,我们可以按照以下几个步骤来进行排查。 1. 检查 MyBatis 配置文件 首先,我们需要检查 MyBatis 配置文件是否正确,包括数据库连接信息、Mapper 文件的路径、Mapper 的命名空间等…

    database 2023年5月21日
    00
  • SpringBoot集成Sharding Jdbc使用复合分片的实践

    下面是SpringBoot集成Sharding Jdbc使用复合分片的实践攻略,分为以下几个步骤: 1. 引入Sharding Jdbc和依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-…

    database 2023年5月19日
    00
  • SQLServer2005安装提示服务无法启动原因分析及解决

    那么首先需要明确的是,出现“SQLServer2005安装提示服务无法启动”的错误提示,通常的原因之一是因为计算机缺失必要的组件或者服务未启用。因此,我们需要完成以下步骤来解决这个问题: 步骤一:检查必要的组件是否已安装 在开始安装 SQL Server 2005 之前,我们需要检查计算机上是否已经安装了以下组件: .NET Framework 2.0 或更…

    database 2023年5月21日
    00
  • Django中get()和filter()返回值区别详解

    Django中get()和filter()返回值区别详解 在Django的ORM中,经常会用到get()和filter()方法来获取数据库中的数据。这两个方法都可以根据指定的查询条件来获取满足条件的数据。但是它们返回的结果是有所差别的,下面我们来详细看一下它们的区别。 get()方法 get()方法用于获取满足条件的单个对象,如果查询条件返回多个对象或者没有…

    database 2023年5月18日
    00
  • 详解Redis hash哈希散列的5种使用方法

    Redis中的哈希散列被用来表示具有名称-值对的对象。在哈希散列中,我们可以存储任何类型的数据,包括数字、字符串、列表、集合和其他哈希散列。 在Redis中,哈希散列可以执行一些有趣的操作,例如添加、删除、更新、获取、迭代和扫描。 在本教程中,我们将对Redis中哈希散列的一些常见操作进行详细讲解。 创建哈希散列 在Redis中,创建哈希散列需要使用命令&q…

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