zoukankan      html  css  js  c++  java
  • 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:秒)

  • 相关阅读:
    [搬运工系列]-JMeter(十三)压力测试--数据库(mysql)压力测试
    [搬运工系列]-JMeter(十二)处理Cookie与Session
    [搬运工系列]-JMeter(十一)问题与方案--内存溢出解决方法
    [搬运工系列]-JMeter(十) 命令行(非GUI)模式
    [搬运工系列]-JMeter (九)分布式测试
    [搬运工系列]-JMeter(八)HTTP属性管理器HTTP Cookie Manager、HTTP Request Defaults
    Python-Selenium 之控制浏览器的操作,WebDriver常用方法
    Selenium常见的无法定位到元素的原因
    接口测试实战
    jmeter做websocket协议的接口测试
  • 原文地址:https://www.cnblogs.com/guanjie20/p/1651750.html
Copyright © 2011-2022 走看看