Sql Server 数据库的定时备份

 
数据库的定时备份
数据库备份是一项非常重要的工作,如果有碰到过数据丢失或服务器出现故障或其他需要用到备份文件的时候,这项工作就显得更加重要。
但如果每次都手工备份则显得非常麻烦,那有没有什么办法可以让系统自动备份呢?当然有。如何做?请跟我来。
以下示例以SQL Server 2005 为例。
1.          建立一个要备份文件的目录,例如在E盘建一个Backup的目录,然后再在这个目录下面建立要备份数据库所对应的目录。例如我有两个数据库(TEST和KR)是要自动备份的,则需要在Backup建立两个子目录:TEST和KR这样主要是为了看起来比较清楚。
2.          建立备份文件的存储过程 BackupDataBase
每天0:00做一个完整备份,然后每过若干小时做一次差异备份,如果数据库比较小则一天生成一个文件就可以了,即完整备份的bak文件与差异备份的文件就是同一个文件。而如果数据库比较大则建议每次差异备份时生成一个独立的文件。脚本如下(以下为每天生成一个文件,如果是第二种情况则需要做相应修改):
/*********   
PROC :BackupDataBase   
USE: 備份資料庫   
CREATE BY:MARK   
CREATE Date:2007/6/4   
EXAM:EXEC BackupDataBase   
**********/    
   
CREATE PROC BackupDataBase   
AS    
BEGIN    
 DECLARE @SQL NVARCHAR(4000)   
 IF CONVERT(CHAR(5),GETDATE(),108)='00:00'   
    BEGIN   
      SET @SQL='BACKUP DATABASE [TEST] TO DISK = N' +''''+'E:/Backup/TEST/TEST'   
             + CONVERT(CHAR(8),GETDATE(),112)+'.bak'   
             +''''+'WITH NOFORMAT, NOINIT, NAME = N' +''''+'TEST-FullBackup'    
             +''''+', SKIP, NOREWIND, NOUNLOAD, STATS = 10'   
     END   
 ELSE   
    BEGIN   
      SET @SQL='BACKUP DATABASE [TEST] TO DISK = N' +''''+'E:/Backup/TEST/TEST'   
             + CONVERT(CHAR(8),GETDATE(),112)+'.bak'   
             +''''+'WITH DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N'   
             +''''+'TEST-' +CONVERT(CHAR(5),GETDATE(),108)   
             +''''+', SKIP, NOREWIND, NOUNLOAD, STATS = 10'   
    END   
   
    EXEC(@SQL)    
   
END
3.          建立自动备份的Job(作业)
3.1选择【对象资源管理器】 -->【Sql Server代理】 -->【作业】,单击鼠标右键,在弹出的菜单中选择【新建作业(N)…】,在常规选项里面的名称输入作业名称,此处输入“AutoBackTest”
3.2选择【步骤】,点击【新建(N)…】,弹出【作业步骤属性】对话框,在步骤名称里面输入“AutoBackup”,数据库选择你要备份的数据库,例如TEST,在命令里面输入:EXEC BackupDataBase ,然后点击【确定】
3.3选择【计划】,点击【新建(N)…】,弹出【作业计划属性】对话框,在名称里面输入“EveryDay”,在计划类型里面选择“重复执行”,并且把【已启用】前面的钩选中。
3.4在频率的执行里面选择“每天”,【执行间隔】设为“1”天。在每天频率的设置如下:开始时间:0:00:00, 结束时间:23:59:59.
执行间隔自己设定一个时间就可以了,例如2小时。
持续时间选择【无结束日期】,然后点击【确定】。
3.5其他几个选择是次要的可以不设置,最后点击【确定】。
 
这样的话就可以了,另外需要把Sql Server Agent服务设为“自动”。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值