-
SQL Server使用脚本实现自动备份
因服务器安装的SQL Server版本不支持自动定时备份,需自行实现,大概思路为:
- 创建备份数据库的脚本
- 创建批处理脚本执行步骤一中的脚本
- 创建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
打开任务计划程序对话框,点击创建任务,依次进行以下步骤:
- 输入任务名称
- 如果是服务器环境,安全选项中务必选择不管用户是否登录都要运行
- 新建触发器
- 设置触发器为按预定计划执行一次
- 在触发器高级设置中选择重复任务间隔根据需要设置,持续时间设置为无限期。这样配置的结果就是在触发后,无限期地每隔xx时间段重复一次
- 新建操作
- 选择刚才新建的批处理脚本
- 检查批处理脚本中是否包含有关目录结构的语句,比如需要读写某个位置的文件。如果有且是Windows Server 2012及以后的操作系统,就需要配置起始位置,起始位置设置为批处理的目录即可。
完成以上步骤后即创建任务成功,然后选中新创建的任务,点击右键选择运行,可测试任务是否可正常执行。
出处:https://www.cnblogs.com/mtcoding/p/14627663.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式