定时备份数据库

来源:互联网  时间:2016/6/25 7:22:38

关于网友提出的“ 定时备份数据库”问题疑问,本网通过在网上对“ 定时备份数据库”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 定时备份数据库
描述:

本帖最后由 kaowenhan 于 2012-08-27 14:12:15 编辑

 定时备份数据库
如上图效果,实现定时备份。直接用c#已经实现,但是如果该页面不打开,它就不判断是否到期。
有没有一种方法能让它不运行这个页面时就可以判断日期是否已到,备份数据库。 asp.net
解决方案1:

  //Global.asax定时任务 void Application_Start(object sender, EventArgs e)     {
        //在应用程序启动时运行的代码www.eeeey.net
         System.Timers.Timer t = new System.Timers.Timer();         t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed);         t.Interval = 3600 X 24; //方法运行间隔时间,以毫秒为单位         t.AutoReset = true;         t.Enabled = true;
    }
/>     void t_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        数据备份();     } 这样就每天自动备份一次了。

解决方案2:

SQL Server 定时备份数据库(作业) use iSignatureKey --数据名称 if exists (select * from dbo.sysobjects where id=object_id(N'[dbo].mysp_All_iSignatureKey') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop  procedure [dbo].mysp_All_iSignatureKey  go CREATE PROCEDURE mysp_All_iSignatureKey @bakpath varchar(4000) --备份路径  AS            
/> BACKUP   DATABASE   iSignatureKey  TO   DISK   =   @bakpath  
GO
if exists (select * from dbo.sysobjects where id=object_id(N'[dbo].[p_createjob]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop  procedure [dbo].[p_createjob]  go

create proc p_createjob  @jobname varchar(100),--作业名称   @sql varchar(8000), --要执行的命令
 @serverName sysname='',--job server名   @dbname sysname='', --默认为当前的数据库名 
 @freqtype varchar(6)='day', --时间周期,month 月,week 周,day 日   @fsinterval int=1, --相对于每日的重复次数   @time int=170000 --开始执行时间,对于重复执行的作业,将从0点到23:59分  as if isnull(@dbname, '')='' set @dbname=db_name() --创建作业 if exists(select 1 from msdb..sysjobs where name=@jobname)  exec msdb..sp_delete_job @job_name=@jobname exec msdb..sp_add_job @job_name=@jobname --创建作业步骤 exec msdb..sp_add_jobstep   @job_name=@jobname,  @step_name='BakdataStart',  @subsystem='TSQL',  @database_name=@dbname,  @command=@sql,  @retry_attempts=5,--重试次数  @retry_interval=5--重试间隔  --创建调度  declare @ftype int, @fstype int, @ffactor int select @ftype=case @freqtype when 'day' then 4
when 'week' then 8
when 'month' then 16 end ,@fstype=case @fsinterval when 1 then 0 else 8 end if @fsinterval<>1 set @time=0 set @ffactor=case @freqtype when 'day' then 0 else 1 end exec msdb..sp_add_jobschedule @job_name=@jobname, @name = '时间安排', @freq_type=@ftype,---每天,8 每周,16 每月 @freq_interval=1,--重复执行次数 @freq_subday_interval=@fsinterval,--重复周期
@freq_recurrence_factor=@ffactor, @active_start_time=@time--下午17:00:00分执行 if @servername='' set @servername=@@servername EXEC msdb..sp_add_jobserver @job_name=@jobname, @server_name=@servername go exec p_createjob @jobname='iSignatureKey.bak', @sql='exec mysp_All_iSignatureKey @bakpath="d:\iSignatureKey.bak"', --bakpath备份路径 @dbname='iSignatureKey', @freqtype='day', @time='235959' --你起备份的时间HHMMSS(HH:24制小时,MM:分钟,SS:秒)

解决方案3:

windows服务

上一篇ckeditor上传附件
下一篇请教ASPNET实现将doc、xls、ppt、pdf等文件转换成swf文件的问题
明星图片
相关文章
《 定时备份数据库》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)