Você está na página 1de 6

Comoagendareautomatizarbackupsdebancosde

dadosSQLServernoSQLServerExpress

IMPORTANTE:Esteartigofoitraduzidoporumsistemadetraduoautomtica(tambmdesignado
porMachineTranslationouMT),notendosidoportantotraduzidoourevistoporpessoas.A
Microsoftpossuiartigostraduzidosporaplicaes(MT)eartigostraduzidosportradutores
profissionais,comoobjetivodeofereceremportugusatotalidadedosartigosexistentesnabasede
dadosdesuporte.Noentanto,atraduoautomticanosempreperfeita,podendocontererros
devocabulrio,sintaxeougramtica.AMicrosoftnoresponsvelporincoerncias,errosou
prejuzosocorridosemdecorrnciadautilizaodosartigosMTporpartedosnossosclientes.A
Microsoftrealizaatualizaesfreqentesaosoftwaredetraduoautomtica(MT).Obrigado.

CliqueaquiparaveraversoemInglsdesteartigo:2019698

Sumrio

SQLServerExpresseditionsnooferecemumamaneiradeagendartrabalhosouplanosde
manuteno,porqueocomponenteSQLServerAgentnoestincludonessasedies.Portanto,
vocprecisaadotarumaabordagemdiferenteparafazerbackupdeseusbancosdedadosquando
vocusaressasedies.

AtualmenteusuriosSQLServerExpresspodemfazerbackupdeseusbancosdedadosusandoum
dosseguintesmtodos:

UseoSQLServerManagementStudioExpress.IssoinstaladocomoSQLServerExpress
AdvancedServiceouSQLServerExpressToolkit.Paraobtermaisinformaes,visiteoseguintesite
daMicrosoftDeveloperNetwork(MSDN):

CriarumBackupcompletodobancodedados(SQLServer)
UseumscriptTransactSQLqueusaafamliadecomandosdebancodedadosdeBACKUP.Para
obtermaisinformaes,acesseoseguintesitedaMSDN:

BACKUP(TransactSQL)EsteartigodescrevecomousarumscriptTransactSQLcomoAgendador
detarefasdoWindowsparaautomatizarbackupsdebancosdedadosSQLServerExpress
regularmente.

Maisinformaes

VoctemtrsetapasparafazerbackupdeseusbancosdedadosSQLServerusandooAgendador
detarefasdoWindows:Etapaum:usoSQLServerManagementStudioExpressouSqlcmdparacriar
oprocedimentoarmazenadonobancodedadosmestre://CopyrightMicrosoftCorporation.Todos
osdireitosreservados.//Estecdigolanadosobostermosda
//LicenapblicadoMicrosoft(MSPLhttp://opensource.org/licenses/mspl.html.)
[Mestre]usoGO/******Objeto:StoredProcedure[dbo].[sp_BackupDatabases]******/SET
ANSI_NULLSONIrSETQUOTED_IDENTIFIERONIr
=============================================Autor:MicrosoftDatadecriao:0602
2010Descrio:bancosdedadosdeBackupparaSQLExpressParmetro1:databaseName
Parmetro2:TipoDeBackupF=completo,D=diferencial,L=logParmetro3:localdoarquivode
backup
=============================================

procedimentoCREATE[dbo].[sp_BackupDatabases]
@sysnamedatabaseName=null,

@TipoDeBackupchar(1),

@backupLocationnvarchar(200)comoSETNOCOUNTONDECLARE@DBsTABLE
(

IDintIDENTITYPRIMARYKEY,

DBNAMEnvarchar(500))Pickoutonlydatabaseswhichareonlinein
caseALLdatabasesarechosentobebackedupIfspecificdatabaseischosentobe
backeduponlypickthatoutfrom@DBsINSERTINTO@DBs(DBNAME)SELECT
NameFROMmaster.sys.databaseswherestate=0ANDname=@DatabaseName
OR@DatabaseNameISNULLORDERBYNameFilteroutdatabaseswhich
donotneedtobackedupIF@backupType='F'BEGIN
Excluir@DBsondeDBNAMEem('tempdb','Northwind','pubs','AdventureWorks')

final

ELSEIF@TipoDeBackup=tinha'

comear

DELETE@DBsondeDBNAMEem('tempdb','Northwind','pubs''mestre','AdventureWorks')

final

ELSEIF@TipoDeBackup='l'

comear

DELETE@DBsondeDBNAMEem('tempdb','Northwind','pubs''mestre','AdventureWorks')

final

ELSE

comear
retornar

final

declararvariveis

DECLARE@NomeDoBackupvarchar(100)

DECLARE@BackupFilevarchar(100)

DECLARE@DBNAMEvarchar(300)

DECLARE@sqlCommandNVARCHAR(1000)
DECLARE@dateTimeNVARCHAR(20)

@LoopDECLARARint
Looppelosbancosdedados,umporum

selecione@Loop=min(ID)de@DBs

ENQUANTO@Loopnonulo

comear

tmnomesdebancodedadosnoformato[dbname],poisalgunstmou_nonomede

Definir@DBNAME='['+(SELECTDBNAMEFROM@DBsWHEREID=@Loop)+']'

definiroformatodenyyyyhhmmssdedataehoraatual

conjunto@dateTime=substituir(converter(VARCHAR,GETDATE(),101),'/','')+'_'+substituir
(converter(VARCHAR,GETDATE(),108),':','')
criaroarquivobackupnoformatopath\filename.extensionparabackupsdelog,comparaoe
completo

se@TipoDeBackup='F'

definir@BackupFile=@backupLocation+REPLACE(substituir(@DBNAME,'[','),']',')'_FULL_'+
@dateTime+'.BAK'

ELSEIF@TipoDeBackup=tinha'

definir@BackupFile=@backupLocation+REPLACE(substituir(@DBNAME,'[','),']',')'_DIFF_'+
@dateTime+'.BAK'

ELSEIF@TipoDeBackup='l'

definir@BackupFile=@backupLocation+REPLACE(substituir(@DBNAME,'[','),']',')'_LOG_'+
@dateTime+'.TRN'
Forneaumnomeparaoarmazenamentoemmdiadebackup

se@TipoDeBackup='F'

definir@NomeDoBackup=REPLACE(REPLACE(@DBNAME,'[',''),']','')+'backupcompletopara'+@
dateTime

se@TipoDeBackup=tinha'

definir@NomeDoBackup=REPLACE(REPLACE(@DBNAME,'[',''),']','')+'backupdiferencialpara'+
@dateTime

GO

definir@NomeDoBackup=REPLACE(REPLACE(@DBNAME,'[',''),']','')+'backupdelogde'+@
dateTime

gerarocomandoSQLdinmicoaserexecutado

se@TipoDeBackup='F'
comear

conjunto@sqlCommand='BACKUPDATABASE'+@DBNAME+'paradisco=''+@BackupFile+''
WITHINIT,NAME='''+@BackupName+''',NOSKIP,NOFORMAT'ENDIF@backupType
='D'BEGINSET@sqlCommand='BACKUPDATABASE'+@DBNAME+'TO
DISK='''+@BackupFile+'''WITHDIFFERENTIAL,INIT,NAME='''+@BackupName+''',NOSKIP,
NOFORMAT'ENDIF@backupType='L'BEGINSET
@sqlCommand='BACKUPLOG'+@DBNAME+'TODISK='''+@BackupFile+'''WITHINIT,NAME='''
+@BackupName+''',NOSKIP,NOFORMAT'ENDExecutethegeneratedSQL
commandEXEC(@sqlCommand)Gotothenextdatabase
SELECT@Loop=min(ID)FROM@DBswhereID>Loop@

finalEtapaB:emumeditordetexto,crieumarquivoemloteschamadoSqlbackup.batecopieotexto
deumdosexemplosaseguirnoarquivo,dependendodocenrio:
Exemplo1:Backupscompletosdetodososbancosdedadosnainstncialocalnomeadodo
SQLEXPRESSusandoaautenticaodoWindows

//Sqlbackup.bat
sqlcmdS.e\EXPRESSQ"EXECsp_BackupDatabases@backupLocation=tinha:
\SQLBackups\',@TipoDeBackup='F'"

Exemplo2:backupsdiferenciaisdetodososbancosdedadosnainstncialocalnomeadodo
SQLEXPRESSusandoumSQLLoginesuasenha//Sqlbackup.batSqlcmdUSQLLoginPsenha
S.\SQLEXPRESSQ"EXECsp_BackupDatabases@backupLocation='D:\SQLBackups',@
TipoDeBackup=tinha'"Observao:OSQLLoginshouldhavepelomenosafunodeoperador
deBackupSQLServer.
Exemplo3:BackupsdelogdetodososbancosdedadoslocalchamadoinstnciaSQLEXPRESS
usandoaautenticaodoWindows

//Sqlbackup.batSqlcmdS.\SQLEXPRESSEQ"EXECsp_BackupDatabases@
backupLocation='D:\SQLBackups\',@backupType='L'"Exemplo4:Backupscompletosdobancode
dadosUSERDBnainstncialocalnomeadadoSQLEXPRESSusandoaautenticaodoWindows/
/Sqlbackup.batSqlcmdS.\SQLEXPRESSEQ"EXECsp_BackupDatabases@backupLocation
=tinha:\SQLBackups\',@databaseName='USERDB',@TipoDeBackup='F'"Damesmaforma,
vocpodefazerumdiferencialbackupdeUSERDBcolandonoseria'paraoparmetro@
TipoDeBackupeumbackupdelogdeUSERDB,colando'L'paraoparmetro@TipoDeBackup
.

Etapac:AgendarumtrabalhousandooAgendadordetarefasdoWindowsparaexecutaroarquivo
emlotescriadonaetapaB.Paraisso,sigaestasetapas:

1.NocomputadorqueestexecutandooSQLServerExpress,cliqueemIniciar,apontepara
Programas,aponteparaAcessrios,aponteparaFerramentasdosistemaecliqueem
tarefasagendadas.
2.CliqueduasvezesemAdicionartarefaagendada.
3.NoAssistentedetarefaagendada,cliqueemAvanar.
4.cliqueemProcurar,cliquenoarquivoemlotescriadonaetapabecliqueemAbrir.
5.DigiteSQLBACKUPparaonomedatarefa,cliqueemdirioecliqueemAvanar.
6.Especifiqueinformaesdeumaagendaexecutaratarefa.(Recomendamosquevocexecute
essatarefapelomenosumavezpordia.)Emseguida,cliqueemAvanar.
7.NocampoDigiteonomedousurio,digiteumnomedeusurioedigiteumasenhanocampo
Digiteasenha.

ObservaoEsteusuriomenosdeveatribudoafunoBackupOperatornonveldeSQL
Serversevocestiverusandoumdosarquivosdelotenoexemplo1,3ou4.
8.CliqueemAvanareemConcluir.
9.Executeatarefaagendadapelomenosumavezparacertificarsedequeobackupcriadocom
xito.
ObservaoapastaparaoexecutvelSQLCMDgeralmenteemvariveisdecaminhoparao
servidordepoisdeSQLServerinstalado,masseavarivelPathnolistanestapasta,pode
encontrarem<local>\90\Tools\Binn(porexemplo:C:\ProgramFiles\MicrosoftSQL
Server\90\Tools\Binn).

Estarcientedoseguinteaousaroprocedimentodocumentadonesteartigo:
OservioAgendadordetarefasdoWindowsdeveestarexecutandonomomentoemqueo
trabalhoagendadoparaexecuo.Recomendamosquevocdefinaotipodeinicializao
paraesteserviocomoautomtico.Issogarantequeoservioserexecutadomesmoem
umareinicializao.
Hdevesermuitoespaonaunidadeemqueosbackupsestosendogravados.
Recomendamosquevoclimpeosarquivosantigosnapastadebackupregularmentepara
certificarsedequevocnoexecuteespaoemdisco.Oscriptnocontmalgicapara
limpararquivosantigos.

Refernciasadicionais

Propriedades
IDdoArtigo:2019698ltimaReviso:06/28/201223:52:00Reviso:1.0

Palavra(s)chave:
kbmtKB2019698KbMtpt