master
exists(select 1 from sysobjects where name = ‘pr_backup’)
procedure pr_backup
proc pr_backup
varchar(50), — Informe o database para backup
varchar(500) = ‘C:’ , — Caminho default de backup, caso não seja declarado na chamada da procedure.
INT = 1, — Seleciona o tipo de backup. 1 = FULL , 2 = DIFERENCIAL , 3 = LOG
int = 30
table #backups (arquivos varchar(500))
@data varchar(12)
@cmd varchar(500) — Número de dias que serão ignorados os backups anteriores
@tipoBackup_name varchar(15)
@dataremocao varchar(12)
@dataremocao=CONVERT(varchar(12),dateadd(day,- @retencao,getdate()),112)
@tipoBackup = 1
begin
SET @tipoBackup_name = ‘Full’
END
@tipoBackup = 2
begin
SET @tipoBackup_name = ‘Diferencial’
END
@tipoBackup = 3
begin
SET @tipoBackup_name = ‘Log’
END
= ‘exec xp_cmdshell ‘+ ””+‘dir ‘+@localbackup+@database+‘-‘ +@tipoBackup_name+‘*.bkp’+””
#backups
@cmd)
varchar(100)
cursor for
substring(substring(arquivos,charindex(@database,arquivos)+LEN(@database)+LEN(@tipoBackup_name)+1,(LEN(arquivos)-(charindex(@database,arquivos)+LEN(@tipoBackup_name)))),1,12) as arquivos from #backups
charindex(@database,arquivos)<>0 and charindex(@database,arquivos) is not null)
(datetime,substring(substring(arquivos,charindex(@database,arquivos)+LEN(@database)+LEN(@tipoBackup_name)+1,(LEN(arquivos)-(charindex(@database,arquivos)+LEN(@tipoBackup_name)))),1,8)) <= @dataremocao
next from arq into @arq
@@FETCH_STATUS = 0
@cmd=‘xp_cmdshell ”del ‘+@localbackup+ @database+‘-‘+@tipoBackup_name+@arq+‘.bkp”’
(@cmd)
next from arq into @arq
arq
@tipoBackup = 1
begin
SET @tipoBackup_name = ‘Full’
set @data=CONVERT(varchar(14),GETDATE(),112)+REPLACE(CONVERT(VARCHAR(5),GETDATE(),108),‘:’,”)
set @cmd = ‘Backup database ‘+@database + ‘ to disk = ‘+””+@localbackup+”+@database+‘-‘+ @tipoBackup_name +@data+‘.bkp’+””
exec (@cmd)
print ”
print ”
print ‘Backup do database ‘+ @database + ‘Realizado em ‘+@localbackup+”+@database+‘-‘+@tipoBackup_name +@data+‘.bkp’
END
@tipoBackup = 2
begin
SET @tipoBackup_name = ‘Diferencial’
set @data=CONVERT(varchar(14),GETDATE(),112)+REPLACE(CONVERT(VARCHAR(5),GETDATE(),108),‘:’,”)
set @cmd = ‘Backup database ‘+@database + ‘ to disk = ‘+””+@localbackup +” +@database+‘-‘+ @tipoBackup_name +@data+‘.bkp’+”’ WITH DIFFERENTIAL’
exec (@cmd)
print ”
print ”
print ‘Backup do database ‘+ @database + ‘Realizado em ‘+@localbackup+” +@database+‘-‘+@tipoBackup_name +@data+‘.bkp’
END
@tipoBackup = 3
begin
SET @tipoBackup_name = ‘Log’
set @data=CONVERT(varchar(14),GETDATE(),112)+REPLACE(CONVERT(VARCHAR(5),GETDATE(),108),‘:’,”)
set @cmd = ‘Backup LOG ‘+@database + ‘ to disk = ‘+””+@localbackup+” +@database+‘-‘+ @tipoBackup_name +@data+‘.bkp’+””
exec (@cmd)
print ”
print ”
print ‘Backup do LOG do database ‘+ @database + ‘ Realizado em ‘+@localbackup+” +@database+‘-‘+@tipoBackup_name +@data+‘.bkp’
END
pr_backup