SQL Server使用脚本实现自动备份

SQL Server使用脚本实现自动备份因服务器安装的SQL Server版本不支持自动定时备份,需自行实现,大概思路为: 创建备份数据库的脚本 创建批处理脚本执行步骤一中的脚本 创建Windows定时任务执行步骤二中的脚本 1. 创建SQ

SQL Server使用脚本实现自动备份

因服务器安装的SQL Server版本不支持自动定时备份,需自行实现,大概思路为:

  1. 创建备份数据库的脚本
  2. 创建批处理脚本执行步骤一中的脚本
  3. 创建Windows定时任务执行步骤二中的脚本

1. 创建SQL脚本

新建db_backup.sql文件,填入以下内容。

-- 定义需要备份的数据库
DECLARE @backupDatabase VARCHAR(20) = "DB_NAME"

-- 定义数据库备份文件存放的基础路径
DECLARE @backupBasePath VARCHAR(MAX) = "D:/DB_NAME/"

-- 定义备份文件名,文件名格式:<DB>_backup_<yyyyMMdd>_<HH:mm:ss.SSS>.bak
DECLARE @backupFileName VARCHAR(50) = NULL

-- 获取当前时间戳
DECLARE @backupTime DATETIME = CURRENT_TIMESTAMP

-- 处理备份文件名称
SET @backupFileName = @backupDatabase + "_backup_" + CONVERT(VARCHAR(25), @backupTime, 112) + "_" + REPLACE(CONVERT(VARCHAR(25), CURRENT_TIMESTAMP, 114), ":", "") + ".bak"

-- 处理完整的备份文件路径
SET @backupBasePath = @backupBasePath + @backupFileName

-- 执行备份
BACKUP DATABASE @backupDatabase TO DISK = @backupBasePath

脚本内容比较简单,这里就不展开说了。详情可查看:BACKUP (Transact-SQL)

到这里已经可以使用脚本对数据库进行备份,但仍需手动执行脚本,无法实现自动定时备份的需求。

2. 创建批处理脚本

新建db_backup.bat文件,填入以下内容。

sqlcmd -S localhost -U sa -P 123 -i ./db_backup.sql -o ./db_backup.log	

以下为使用到的各个选项的解释:

sqlcmd -S <数据库连接地址> -U <数据库登录名> -P <数据库密码> -i <要执行的脚本文件> -o <执行日志文件>

更多选项请执行sqlcmd -?查看或者查看:sqlcmd 实用工具

双击执行批处理文件,如果没有报错且正常输出日志文件,则说明批处理脚本创建成功。

3. 创建Windows任务计划

使用win+r快捷键打开运行对话框,输入taskschd.msc打开任务计划程序对话框,点击创建任务,依次进行以下步骤:

  1. 输入任务名称
  2. 如果是服务器环境,安全选项中务必选择不管用户是否登录都要运行
  3. 新建触发器
  4. 设置触发器为按预定计划执行一次
  5. 在触发器高级设置中选择重复任务间隔根据需要设置,持续时间设置为无限期。这样配置的结果就是在触发后,无限期地每隔xx时间段重复一次
  6. 新建操作
  7. 选择刚才新建的批处理脚本
  8. 检查批处理脚本中是否包含有关目录结构的语句,比如需要读写某个位置的文件。如果有且是Windows Server 2012及以后的操作系统,就需要配置起始位置,起始位置设置为批处理的目录即可。

创建任务01

创建任务02

创建任务03

完成以上步骤后即创建任务成功,然后选中新创建的任务,点击右键选择运行,可测试任务是否可正常执行。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6418.html

(0)
上一篇 2023-04-10
下一篇 2023-04-10

相关推荐

  • mysql实战案例[通俗易懂]

    mysql实战案例[通俗易懂]实战案例 1.搭建mysql服务 下载mysql [root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release

    2023-05-28
    143
  • 利用python split()实现字符串拆分

    利用python split()实现字符串拆分Python中的split()方法是一种非常常用的字符串处理方法。它的主要作用是将一个字符串按照指定的分隔符进行拆分,返回一个由拆分后的子字符串组成的列表。这个方法广泛应用于数据清洗和字符串处理等场景。

    2023-12-05
    113
  • 容器镜像构建工具_docker更新容器镜像

    容器镜像构建工具_docker更新容器镜像作者:安树博 青云科技 PaaS 中间件开发工程师 从事 PaaS 中间件服务(Redis/Memcached 等)开发工作,热衷对 NoSQL 数据库领域内技术的学习与研究 官方镜像版本无法满足功能

    2023-05-31
    142
  • Python Calendar模块介绍

    Python Calendar模块介绍在计算机程序设计中,时间和日期一直是比较重要的概念。在Python中,和时间相关的操作和函数非常丰富,其中的一个重要的模块就是Calendar。

    2024-08-11
    28
  • Hadoop(三)通过C#/python实现Hadoop MapReduce

    Hadoop(三)通过C#/python实现Hadoop MapReduceMapReduce Hadoop中将数据切分成块存在HDFS不同的DataNode中,如果想汇总,按照常规想法就是,移动数据到统计程序:先把数据读取到一个程序中,再进行汇总。 但是HDFS存的数据量非

    2023-05-14
    154
  • Python中reload()函数的用法和作用

    Python中reload()函数的用法和作用a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-05-17
    75
  • redis持久化机制和如何实现持久化_Redis持久化原理

    redis持久化机制和如何实现持久化_Redis持久化原理Redis之所以快,一个最重要的原因在于它是直接将数据存储在内存,并直接从内存中读取数据的,因此一个绝对不容忽视的问题便是,一旦Redis服务器宕机,内存中的数据将会完全丢失。本文讲解Redis持久化

    2023-05-01
    143
  • Spyder更新指南

    Spyder更新指南Spyder是一个集成开发环境(IDE),专门用于运行和调试Python。最初,Spyder IDE的初衷是为科学家和工程师们提供一个方便、易于使用、完整的Python环境,使其无需搭建Python环境就可以开始工作。

    2024-08-14
    28

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注