VAMOS LA

 

E claro que vc. vai ter que adaptar este script para sua realidade neste caso realizo o backup na unidade Z:\Backup\Dia da senama coloque o seu end. local de backup

O Usuário que ira vai realizar o backup <<<<< USUARIO DE BACKUP >>>>>> deve ser cadastrado no sql server com o acesso somente de db_backupoperator.

E o \\IP DA REDE\ UNIDADES DE BACKUP REMOTA \ entra o endereço remoto aonde sera armazenado o backup.

 

ACREDITE O SCRIPT ESTA BEM SIMPLES VAI TER GENTE RECLAMANDO DA SERIE DE IF(S) ETC.. E TAL MAS LEMBRO QUE ESTE SCRIPT É PARA AJUDAR AOS INICIANTES.

OU SEJA VAI RECLAMAR COM A VOVÓ.

 

 

 

 

use master

DECLARE @nome_banco varchar(50)

DECLARE @dia_semana varchar(50)

SET @dia_semana = 'Terca'

DECLARE @unidade varchar(50)

SET @unidade = 'CaboFrio'

DECLARE @drive_local varchar(50)

SET @drive_local =  'Z:\Backup\'+@dia_semana

DECLARE @drive_rede varchar(70)

SET @drive_rede =  '\\IP DA REDE\ UNIDADES DE BACKUP REMOTA \'+@unidade+'\'+@dia_semana+'\'

DECLARE lista CURSOR SCROLL FOR select name from master..sysdatabases order by name

OPEN lista

if @dia_semana = 'Segunda'

BEGIN

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

 

 

if @dia_semana = 'Terca'

 

BEGIN

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

 

 

 

 

if @dia_semana = 'Quarta'

 

BEGIN

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

 

 

 

 

if @dia_semana = 'Quinta'

 

BEGIN

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

 

 

 

 

if @dia_semana = 'Sexta'

 

BEGIN

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

 

 

 

 

if @dia_semana = 'Sabado'

 

BEGIN

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

 

 

if @dia_semana = 'Domingo'

 

BEGIN

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

 

 

 

 

-- Primeiro registro

 

FETCH FIRST FROM lista INTO @nome_banco

 

 

 

WHILE @@FETCH_STATUS = 0

 

BEGIN

 

 

 

 

 

-- codigo para criar um script tipo .bat para gera o backup de todos os bancos

 

 

 

;

 

 

 

PRINT '@echo.'

 

PRINT '@echo.'

 

PRINT '@echo    *********************************************** '

 

PRINT '@echo    *                 '+ @nome_banco + '         *  '

 

PRINT '@echo    *********************************************** '

 

PRINT 'OSQL -U <<<<< USUARIO DE BACKUP >>>>>> -P <<<<< SENHA USUARIO DE BACKUP >>>>>>  -Q "BACKUP DATABASE '+ @nome_banco + '   TO DISK ='+ NCHAR(39)+'Z:\Backup\'+@dia_semana+'\'+@nome_banco+'.bak'+ NCHAR(39)+' " '

 

PRINT 'rar a Z:\Backup\'+@dia_semana+'\'+@nome_banco+'.rar          Z:\Backup\'+@dia_semana+'\'+ @nome_banco+'.bak '

 

PRINT 'del   Z:\Backup\'+@dia_semana+'\'+@nome_banco+'.bak  '

 

PRINT 'ROBOCOPY *.rar Z:\Backup\'+@dia_semana+'\ '+@drive_rede+' /MIR /MT:5 /Z /R:5 /W:30'

 

PRINT '@echo.'

 

 

 

 

 

 

 

 

 

 

 

-- Próximo registro

 

FETCH NEXT FROM lista INTO @nome_banco

 

END

 

 

 

CLOSE lista

 

DEALLOCATE lista

 

 

 

 

 

================================================================================================

 

Só dei uma arrumadinha.

 

 

 

DECLARE @nome_banco varchar(50)

 

DECLARE @drive_local varchar(50)

 

SET @drive_local =  'Z:\Backup\'

 

DECLARE @drive_rede varchar(70)

 

SET @drive_rede =  '\\IP\local\'

 

DECLARE @dia_semana  varchar(50)

 

SET @dia_semana =  'Terca'

 

-- SET @drive_rede =  @drive_rede+@dia_semana 

 

--SET @drive_local =  @drive_local+@dia_semana 

 

DECLARE lista CURSOR SCROLL FOR select name from master..sysdatabases order by name

 

OPEN lista

 

if @dia_semana = 'Segunda'

 

BEGIN

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

-- PRINT 'del  '+@drive_rede+@dia_semana+'\ *.* /q'

 

END

 

if @dia_semana = 'Terca'

 

BEGIN

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

-- PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

if @dia_semana = 'Quarta'

 

BEGIN

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

-- PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

if @dia_semana = 'Quinta'

 

BEGIN

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

-- PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

if @dia_semana = 'Sexta'

 

BEGIN

 

PRINT 'del  Z:\Backup\Sexta\*.* /q'

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

-- PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

if @dia_semana = 'Sabado'

 

BEGIN

 

PRINT 'del  Z:\Backup\Sabado\*.* /q'

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

-- PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

if @dia_semana = 'Domingo'

 

BEGIN

 

PRINT 'del  Z:\Backup\Domingo\*.* /q'

 

PRINT 'del  Z:\Backup\Segunda\*.* /q'

 

PRINT 'del  Z:\Backup\Terca\*.* /q'

 

PRINT 'del  Z:\Backup\Quarta\*.* /q'

 

PRINT 'del  Z:\Backup\Quinta\*.* /q'

 

-- PRINT 'del  '+@drive_rede+'*.* /q'

 

END

 

-- Primeiro registro

 

FETCH FIRST FROM lista INTO @nome_banco

 

WHILE @@FETCH_STATUS = 0

 

BEGIN

 

if @nome_banco != '<<BANCO >>_OLD' and @nome_banco != 'SIG00_OLD'

 

begin

 

PRINT '@echo.'

 

PRINT '@echo.'

 

PRINT '@echo    *********************************************** '

 

PRINT '@echo    *                  '+ @nome_banco + '         * '

 

PRINT '@echo    ***********************************************'

 

PRINT 'OSQL -U db_backup -P backup@2000  -Q "BACKUP DATABASE '+ @nome_banco + '   TO DISK ='+ NCHAR(39)+@drive_local+@dia_semana+'\'+@nome_banco + '.bak' + NCHAR(39) + ' " '

 

PRINT  @drive_local+'rar a '+@drive_local+@dia_semana+'\'+@nome_banco + '.rar            '+@drive_local+@dia_semana+'\'+@nome_banco + '.bak '

 

PRINT 'XCOPY  '+@drive_local+@dia_semana+'\'+@nome_banco + '.rar         '+@drive_rede+@dia_semana+' /Y'

 

if @nome_banco != '<<BANCO >>' AND @nome_banco != '<<BANCO >>'

 

 PRINT 'del   '+@drive_local+@dia_semana+'\'+@nome_banco + '.bak '

 

;

 

end

 

-- Próximo registro

 

FETCH NEXT FROM lista INTO @nome_banco

 

END

 

CLOSE lista

 

DEALLOCATE lista