terça-feira, 9 de abril de 2013

Backup MS-SQL Automatico e Zipado.

Segue abaixo 10 arquivos para gerar os backups automaticos e compacta-los tudo automaticamente a mensagem ficou meio grande pq coloquei todos os arquivos aqui se vc quizer me passe o seu e-mail que te envio os arquivos ou se não basta copiar e colar cada trecho em cada arquivo, aqui vc vai ter que pegar do inicio ao fim cada arquivo para criar os arquivos SQL ou BAT. Duvidas entre em contato.
Att. Rodrigo
**************************************** INICIO ARQUIVO LEIAME.TXT ******************************* *** INICIO NOMES DOS ARQUIVOS - TERÁ QUE CRIAR OS ARQVUIOS ABAIXO QUE ESTAO NO CORPO DESTA MENSAGEM LEIAME.TXT sqlbkp.bat sqlbkp0.bat sqlbkp1.bat sqlbkp2.bat procedure Proc_Sp_Backup_Sql_Server.sql procedure Proc_Sp_DataBases.sql sqlbkp0.sql sqlbkp1.sql sqlbkp2.sql *** FIM NOMES DOS ARQUIVOS
1 - sqlbkp.bat (Inicio do procedimento de backup) - Coloque ele no Scheduler do Windows 2 - sqlbkp0.bat executa sqlbkp0.sql e gera dumpsc.sql - script sql para fazer o backup 3 - dumpsc.sql e gera c:\C:\Bkp_Sql\dump_log.txt 4 - sqlbkp1.bat executa sqlbkp1.sql e gera helpdb.sql - script sql para fazer o helpdb dos bancos 5 - helpdb.sql e gera C:\Bkp_ServerSql\helpdb.txt 6 - sqlbkp2.bat executa sqlbkp2.sql e gera compacta.bat - aqui nos exemplos estou utilizando o winzip com a sintaxe de linha de comando. pode-se substituir por qualquer outro compactador que aceite linha de comando. 7 - compacta.bat (compacta os arquivos de backup gerados ) o compactador tem que executar sozinho, ser registrado, para nao precisar clicar em "I Agree" ou "Aceito"
OBS: você pode acrescentar um BAT aqui no final para fazer uma cópia para um outro local pode-se utilizar o XCOPY nele você pode copiar somente os novos arquivos gerados. veja as opções no help do XCOPY.
Rode as procedures na base MASTER
Nas bases que for fazer os backups automaticos entre nas procedures e de permissão de executar para o usuario SqlBackup
Variaveis: C:\Bkp_Sql - local em que está os arquivos para gerar o backup C:\Bkp_ServerSql - local em que será gerado os backups SqlBackup - usuario do Sql para backup SenhaUsuarioSqlBackup - senha do usuario (SqlBackup) do Sql para backup ServerSql - nome do servidor do Sql
**************************************** FIM ARQUIVO LEIAME.TXT *******************************

******************************** INICIO ARQUIVOS BATH´S ****************************************** ECHO ********************************************************************************************** echo inicio sqlbkp.bat @echo off
echo Backup do Ambiente SQL Server 2000 - aguarde... echo Etapa 1 echo Esta operacao devera durar alguns minutos !
c: cd C:\backup_sql rem crie um diretorio com o nome acima ou algum outro que queira
echo Executa sqlbkp0.bat call sqlbkp0.bat rem executa sqlbkp0.sql e gera dumpsc.sql
echo sqlbkp1.bat call sqlbkp1.bat rem executa sqlbkp1.sql e gera helpdb.sql
echo sqlbkp2.bat call sqlbkp2.bat rem executa sqlbkp2.sql e gera compacta.bat
@echo on exit echo fim sqlbkp.bat ECHO **********************************************************************************************
ECHO ********************************************************************************************** echo inicio sqlbkp0.bat @echo off echo Etapa 2
C:\PROGRA~1\MICROS~4\80\Tools\Binn\isql -USqlBackup -PSenhaUsuarioSsqlBackup -SServerSql -n -w150 -isqlbkp0.sql -odumpsc.sql rem Executa sqlbkp0.sql e gera dumpsc.sql rem tem que criar um usuario no Sql Server (SqlBackup) neste caso rem nos bancos que você quizer que faça backup acrescente o usuario (SqlBackup) na base rem e marque a role de (Db_BackupOperator) para ele no banco os bancos que não tiverem rem este usuario coocar nao será feito o backup rem veja se o caminho do executavel ISQL está certo coloque os nomes dos diretorios rem no formato 8.3 para ver o nome do diretorio em 8.3 va no prompt de comando rem e digite dir /x
C:\PROGRA~1\MICROS~4\80\Tools\Binn\isql -USqlBackup -PSenhaUsuarioSsqlBackup -SServerSql -n -w150 -idumpsc.sql -oc:\Bkp_ServerSql\dump_log.txt echo on rem Crie um diretorio (Bkp_ServerSql) que é o local em que será gerado o backup
echo on echo fim sqlbkp0.bat ECHO **********************************************************************************************
ECHO ********************************************************************************************** echo inicio sqlbkp1.bat @echo off echo Etapa 3
C:\PROGRA~1\MICROS~4\80\Tools\Binn\isql -USqlBackup -PSenhaUsuarioSqlBackup -SServerSql -n -w150 -isqlbkp1.sql -ohelpdb.sql
C:\PROGRA~1\MICROS~4\80\Tools\Binn\isql -USqlBackup -PSenhaUsuarioSqlBackup -SServerSql -n -w150 -ihelpdb.sql -oC:\Bkp_ServerSql\helpdb.txt
echo on echo fim sqlbkp1.bat ECHO **********************************************************************************************

ECHO ********************************************************************************************** echo inicio sqlbkp2.bat @echo off echo Etapa 4
C:\PROGRA~1\MICROS~4\80\Tools\Binn\isql -USqlBackup -PSenhaUsuarioSqlBackup -SServerSql -n -w150 -isqlbkp2.sql -ocompacta.bat call compacta.bat
echo on echo fim sqlbkp2.bat ECHO **********************************************************************************************
*********************************** FIM ARQUIVOS BATH´S ******************************************


**************************************** INICIO PROCEDURES E SCRIPT'S SQL ***********************
------------------------------ INICIO procedure Proc_Sp_Backup_Sql_Server.sql
-- drop procedure Proc_Sp_Backup_Sql_Server CREATE procedure Proc_Sp_Backup_Sql_Server as
select 'backup database ' + ltrim(rtrim(name)) + ' to disk = ' + '"C:\Bkp_ServerSql\'+ ltrim(rtrim(name)) + '_' + convert(char(8), getdate(), 112) + '.dmp"'
from master..sysdatabases
where dbid > 6 or name = 'master' -- se for um banco especifico vc pode colocar aqui (and name = NomeDoBanco)
print 'go'
GO
------------------------------ FIM procedure Proc_Sp_Backup_Sql_Server.sql

-------------------------------- inicio procedure Proc_Sp_DataBases.sql
-- drop procedure Proc_Sp_DataBases
create procedure Proc_Sp_DataBases as
select 'exec sp_helpdb ' + name
from master..sysdatabases
where dbid > 6 or name = 'master' -- se for um banco especifico vc pode colocar aqui
print 'go'
GO
-------------------------------- FIM procedure Proc_Sp_DataBases.sql
-------------------------------- INICIO SCRIPT sqlbkp0.sql
Proc_Sp_Backup_Sql_Server
-------------------------------- FIM SCRIPT sqlbkp0.sql

-------------------------------- INICIO SCRIPT sqlbkp1.sql
Proc_Sp_DataBases
-------------------------------- FIM SCRIPT sqlbkp1.sql


-------------------------------- INICIO SCRIPT sqlbkp2.sql
use master go set nocount on go declare @zip varchar(255), @zip1 varchar(255)
-- aqui gera a bat para compactar select @zip = 'C:\PROGRA~1\WinZip\winzip32 -m C:\Bkp_ServerSql\DMPSQL' + convert(char(8), getdate(), 112)+' C:\Bkp_ServerSql\*.txt'
select @zip1 = 'C:\Progra~1\WinZip\winzip32 -m C:\Bkp_ServerSql\DMPSQL' + convert(char(8), getdate(), 112)+' C:\Bkp_ServerSql\*.dmp'
print @zip print @zip1
go
-------------------------------- FIM SCRIPT sqlbkp2.sql

********************************** FIM PROCEDURES E SCRIPT'S SQL *******************************

Nenhum comentário: