搜索
您的当前位置:首页正文

SQLServer使用脚本实现自动备份的思路详解

来源:独旅网
SQLServer使⽤脚本实现⾃动备份的思路详解

因服务器安装的SQL Server版本不⽀持⾃动定时备份,需⾃⾏实现,⼤概思路为:1. 创建备份数据库的脚本

2. 创建批处理脚本执⾏步骤⼀中的脚本

3. 创建Windows定时任务执⾏步骤⼆中的脚本

1. 创建SQL脚本

新建db_backup.sql⽂件,填⼊以下内容。

-- 定义需要备份的数据库

DECLARE @backupDatabase VARCHAR(20) = 'DB_NAME'-- 定义数据库备份⽂件存放的基础路径

DECLARE @backupBasePath VARCHAR(MAX) = 'D:/DB_NAME/'

-- 定义备份⽂件名,⽂件名格式:_backup__.bakDECLARE @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

脚本内容⽐较简单,这⾥就不展开说了。详情可查看:。

到这⾥已经可以使⽤脚本对数据库进⾏备份,但仍需⼿动执⾏脚本,⽆法实现⾃动定时备份的需求。

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 -?查看或者查看:。

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

3. 创建Windows任务计划

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

1. 输⼊任务名称

2. 如果是服务器环境,安全选项中务必选择不管⽤户是否登录都要运⾏3. 新建触发器

4. 设置触发器为按预定计划执⾏⼀次

5. 在触发器⾼级设置中选择重复任务间隔根据需要设置,持续时间设置为⽆限期。这样配置的结果就是在触发后,⽆限期地每隔xx时间段重复⼀次6. 新建操作

7. 选择刚才新建的批处理脚本

8. 检查批处理脚本中是否包含有关⽬录结构的语句,⽐如需要读写某个位置的⽂件。如果有且是Windows Server 2012及以后的操作系统,就需要配置起始位置,起始位置设置为批处理的⽬录即可。

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

到此这篇关于SQL Server使⽤脚本实现⾃动备份的思路详解的⽂章就介绍到这了,更多相关sqlserver⾃动备份内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

因篇幅问题不能全部显示,请点此查看更多更全内容

Top