设为首页 加入收藏

TOP

T-SQL语句实现数据库备份与还原(三)
2014-11-23 19:56:48 来源: 作者: 【 】 浏览:117
Tags:T-SQL 语句 实现 数据库 备份 还原
en '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_type=@fstype, --是否重复执行

@freq_subday_interval=@fsinterval, --重复周期

@freq_recurrence_factor=@ffactor,

@active_start_time=@time --下午17:00:00分执行

go

/*--应用案例--备份方案:

完整备份(每个星期天一次)+差异备份(每天备份一次)+日志备份(每2小时备份一次)

调用上面的存储过程来实现

--*/

declare @sql varchar(8000)

--完整备份(每个星期天一次)

set @sql='exec p_backupdb @dbname=''要备份的数据库名'''

exec p_createjob @jobname='每周备份',@sql,@freqtype='week'

--差异备份(每天备份一次)

set @sql='exec p_backupdb @dbname=''要备份的数据库名'',@bktype='DF''

exec p_createjob @jobname='每天差异备份',@sql,@freqtype='day'

--日志备份(每2小时备份一次)

set @sql='exec p_backupdb @dbname=''要备份的数据库名'',@bktype='LOG''

exec p_createjob @jobname='每2小时日志备份',@sql,@freqtype='day',@fsinterval=2

--上面发现了错误,修改下贴出

--完整备份(每个星期天一次)

exec p_createjob @jobname='每周备份',@sql='exec p_backupdb @dbname=''要备份的数据库名''',@freqtype='week'

--差异备份(每天备份一次)

exec p_createjob @jobname='每天差异备份',@sql='exec p_backupdb @dbname=''要备份的数据库名'',@bktype=''DF''',@freqtype='day'

--日志备份(每2小时备份一次)

exec p_createjob @jobname='每2小时日志备份',@sql='exec p_backupdb @dbname=''要备份的数据库名'',@bktype=''LOG''',@freqtype='day',@fsinterval=2

/*--应用案例2

生产数据核心库:PRODUCE

备份方案如下:

1.设置三个作业,分别对PRODUCE库进行每日备份,每周备份,每月备份

2.新建三个新库,分别命名为:每日备份,每周备份,每月备份

3.建立三个作业,分别把三个备份库还原到以上的三个新库。

目的:当用户在produce库中有任何的数据丢失时,均可以从上面的三个备份库中导入相应的TABLE数据。

--*/

declare @sql varchar(8000)

--1.建立每月备份和生成月备份数据库的作业,每月每1天下午16:40分进行:

set @sql='

declare @path nvarchar(260),@fname nvarchar(100)

set @fname=''PRODUCE_''+convert(varchar(10),getdate(),112)+''_m.bak''

set @path=dbo.f_getdbpath(null)+@fname

--备份

exec p_backupdb @dbname=''PRODUCE'',@bkfname=@fname

--根据备份生成每月新库

exec p_RestoreDb @bkfile=@path,@dbname=''PRODUCE_月''

--为周数据库恢复准备基础数据库

exec p_RestoreDb @bkfile=@path,@dbname=''PRODUCE_周'',@retype=''DBNOR''

--为日数据库恢复准备基础数据库

exec p_RestoreDb @bkfile=@path,@dbname=''PRODUCE_日'',@retype=''DBNOR''

'

exec p_createjob @jobname='每月备份',@sql,@freqtype='month',@time=164000

--2.建立每周差异备份和生成周备份数据库的作业,每周日下午17:00分进行:

set @sql='

declare @path nvarchar(260),@fname nvarchar(100)

set @fname=''PRODUCE_''+convert(varchar(10),getdate(),112)+''_w.bak''

set @path=dbo.f_getdbpath(null)+@fname

--差异备份

exec p_backupdb @dbname=''PRODUCE'',@bkfname=@fname,@bktype=''DF''

--差异恢复周数据库

exec p_backupdb @bkfile=@path,@dbname=''PRODUCE_周'',@retype=''DF''

'

exec p_createjob @jobname='每周差异备份',@sql,@freqtype='week',@time=170000

--3.建立每日日志备份和生成日备份数据库的作业,每周日下午17:15分进行:

set @sql='

declare @path nvarchar(260),@fname nvarchar(100)

set @fname=''PRODUCE_''+convert(varchar(10),getdate(),112)+''_l.bak''

set @path=dbo.f_getdbpath(null)+@fname

--日志备份

exec p_backupdb @dbname=''PRODUCE'',@bkfname=@fname,@bktype=''LOG''

--日志恢复日数据库

exec p_backupdb @bkfile=@path,@dbname=''PRODUCE_日'',@retype=''LOG''

'

exec p_createjob @jobname='每周差异备份',@sql,@freqtype='day',@time=171500

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇mongodb备份与恢复 下一篇数据库备份脚本shell

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: