Windows服务器定时备份数据库

本文共有2019个字,关键词:backup定时任务

为了防止突发事故导致数据库存储的内容被修改或删除,在必要的时候可以进行直接通过备份恢复,我们可以通过Windows的定时任务来做备份,比如定时在每天的凌晨2:00备份一次。
本来SQL Server高级版本是有自动备份的功能的,但Express是没有的,这就需要借助系统的定时任务来做。

服务器系统:Windows Server,数据库SQL Server2008R2

  1. 在要备份的数据库中添加一个存储过程,如名为 sp_BackupDatabases ,备份的数据库名称为test
USE [test]
GO
/****** Object:  StoredProcedure [dbo].[sp_BackupDatabases]    Script Date: 03/31/2017 18:15:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_BackupDatabases]     
AS
BEGIN
    --设置备份数据库的存放目录
    DECLARE @diskPath NVARCHAR(300)
    SET @diskPath='C:\Backup\test_'   --“test_”表示备份的文件名前缀,如“test_1122336655.bak”
    +CONVERT(VARCHAR, GETDATE(),112)+'_'
    +REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')+'.BAK'

    BACKUP DATABASE test TO DISK = @diskPath WITH FORMAT;
END
  1. 在某个文件夹(建议直接在存备份文件的文件夹C:\Backup\)下新建一个文本文件,保存为test_backup.bat,内容格式是: sqlcmd -S 数据库实例名 -E -Q "EXEC 数据库名.dbo.sp_BackupDatabases"
sqlcmd -S . -E  -Q "EXEC test.dbo.sp_BackupDatabases"

保存后,可以直接双击该bat文件,查看是否在C:\Backup\下生成备份文件,如果能生成备份文件证明脚本可以无错误,如果不能请检查有没写错语法或者文件夹是否存在。

  1. 打开“服务器任务管理器”->“配置”->“任务计划程序”,在任务计划程序库下新建一个文件夹,取名:myDuty
    QQ图片20170331182737.png
  2. 右键myDuty,点击“创建任务”,在常规下填写相关的信息,注意要勾选最高权限,防止权限不够不能执行
    QQ图片20170331183436.png
  3. 新建一个触发器,自己选择任务的执行时间
    QQ图片20170331183655.png
  4. 在操作中选择前面保存的启动的脚本test_backup.bat
    QQ图片20170331183817.png

7.其他的默认就行了,确定后会看到任务的状态为准备就绪,自动备份工作完成。这样你的这个脚本就会在你设定的时间执行。
QQ图片20170331184327.png



这个备份会越来越多,需要增加一个脚本定时删除已过时的备份文件,请看定时删除数据库备份文件
(完)

「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」

fengxianqi

(๑>ڡ<)☆谢谢老板~

使用微信扫描二维码完成支付

版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论