sqlserver如何设置定时备份(SQL Server使用脚本实现自动备份的思路详解)
类别:数据库 浏览量:674
时间:2021-10-10 00:53:21 sqlserver如何设置定时备份
SQL Server使用脚本实现自动备份的思路详解因服务器安装的SQL Server版本不支持自动定时备份,需自行实现,大概思路为:
- 创建备份数据库的脚本
- 创建批处理脚本执行步骤一中的脚本
- 创建Windows定时任务执行步骤二中的脚本
新建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及以后的操作系统,就需要配置起始位置,起始位置设置为批处理的目录即可。
完成以上步骤后即创建任务成功,然后选中新创建的任务,点击右键选择运行,可测试任务是否可正常执行。
到此这篇关于SQL Server使用脚本实现自动备份的思路详解的文章就介绍到这了,更多相关sqlserver自动备份内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- sqlserver怎么显示变量所占字节数(SQL Server中关于基数估计计算预估行数的一些方法探讨)
- sqlserver分区查询语句(SQL Server中的集合运算: UNION, EXCEPT和INTERSECT示例代码详解)
- sqlserver中根据类型分组(SQL SERVER 分组求和sql语句)
- SQLServer中JSON文档型数据的查询问题解决(SQLServer中JSON文档型数据的查询问题解决)
- 数据库sqlserver定时任务(SQL Server 2005作业设置定时任务)
- sqlserver降序排列(SQL SERVER临时表排序问题的解决方法)
- sqlserver新建表参数错误(Sql Server中判断表、列不存在则创建的方法)
- sqlserver日志目录是否过大(SQL Server利用sp_spaceused如何查看表记录存在不准确的情况)
- Windows2012配置SQLServer2014AlwaysOn的图解(Windows2012配置SQLServer2014AlwaysOn的图解)
- sqlserver2012tcpip配置(Sql Server2012 使用IP地址登录服务器的配置图文教程)
- mysql 命令与sqlserver的区别大么(MySQL系列之执行SQL 语句时发生了什么?)
- sqlserver2012卸载工具(Windows下SQL Serever 2012彻底卸载删除教程)
- sql server 进阶(SqlServer AS的用法)
- sqlserver存储删除过程(Sql中存储过程的定义、修改和删除操作)
- sqlserver厉害的函数(SQL Server里书签查找的性能伤害)
- sqlserver2016标准分区(Sql Server 2016新功能之Row-Level Security值得关注)
- 黄渤泪目 我的痴呆父亲,我内心永远的痛(黄渤泪目我的痴呆父亲)
- 蒜苔和鱿鱼尾巴一起炒,味道特别棒,又脆又嫩,有滋又有味(蒜苔和鱿鱼尾巴一起炒)
- 鱿鱼炒蒜苔不是黑暗料理,这样做清香扑鼻,鲜美脆嫩,开胃又下饭(鱿鱼炒蒜苔不是黑暗料理)
- 蒜苔炒鱿鱼(蒜苔炒鱿鱼)
- 远离 五毛食品 洛阳80后妈妈发明的 飞行棋 成校园爆款 玩具(远离五毛食品)
- 失传的古代飞行棋游戏 六博(失传的古代飞行棋游戏)
热门推荐
- php实现异步操作(php提供实现反射的方法和实例代码)
- amaze ui使用教程(Amaze UI 文件选择域的示例代码)
- sqlserver实现登录注册(Sqlserver创建用户并授权的实现步骤)
- apachephp安装配置教程交流(Apache中利用mod_rewrite实现防盗链)
- python类继承和封装(Python面向对象程序设计类的封装与继承用法示例)
- pythondatetime库详解(python使用time、datetime返回工作日列表实例代码)
- sql数据库查询优化(数据库SQL语句优化总结收藏)
- 云服务器最低配置可以吗(云服务器内存怎么选择?)
- sql怎么把表移到另一个数据库中(sql存储过程实例--动态根据表数据复制一个表的数据到另一个表)
- sqlcount函数转化为数值型(SQL判断是否"存在",还在用 count 操作?很耗时的!)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9