Tecnologia

Procedure de Backup no SQL Server

Já teve que fazer backup do banco de dados de algum dos seus clientes e percebeu que algumas rotinas não funcionam bem?

Pois é tive que criar recentemente uma rotina de backup para um cliente, mas com um detalhe o backup deveria ser feito compactado (formato rar), deveria rodar todo dia de madrugada e claro deveria ficar somente o último backup.

Então mãos à obra

A procedure XP_CMDSHELL em alguns servidores não está disponível, e para habilita-la via surface do SQL Server você teria que reiniciar o banco, o que em alguns casos é impossível pois você não pode parar uma empresa toda para isso correto? Então como fazer?

Mãos à obra [2] – Go Horse!

−− Para permitir que as opções avançadas possam ser alteradas.
EXEC sp_configure 'show advanced options', 1 GO
−− Para atualizar o valor configurado no momento para as opções avançadas.
RECONFIGURE GO
−− Para habilitar o recurso.
EXEC sp_configure 'xp_cmdshell', 1 GO
−− Para atualizar o valor configurado no momento para esta funcionalidade.
RECONFIGURE GO

Em seguida podemos criar uma tarefa no Task Scheduler e adicionar um arquivo bat com o seguinte conteúdo:

sqlcmd -S seubanco -U seuusuário -P suasenha -Q "meubanco..MSP_BACKUP"

Pronto, mais um cliente feliz! Espero que você faça bom uso desta pequena procedure. Dúvidas ou sugestões? Comente.

Coimbra, PMP on FacebookCoimbra, PMP on LinkedinCoimbra, PMP on TwitterCoimbra, PMP on Youtube
Coimbra, PMP
CEO do portal, apaixonado por gestão de projetos, metodologias, minha família, professor, consultor de outsourcing de projetos com mais de 6 anos de experiência em projetos de TI e 18 anos de experiência em tecnologia da informação. Com experiencia trabalhando com supply-chain, e-commerce, e-procurement, compliance, agilidade e planejamento.

Graduado em Gestão de Tecnologia pelo Centro Universitário Barão de Mauá.
Pós-Graduado em Gerenciamento de Projetos, com as práticas do PMI® pelo SENAC.

Certificado como PMP® pelo PMI®. Six Sigma White Belt pela Voitto.
Especializado em BPMN2 pela Anelox, PMCanvas pela PM2.0 e Análise de requisitos

Mentor e influenciador de gestão de projetos, agilidade e transformação digital.

Comentários

2 thoughts on “Procedure de Backup no SQL Server”

  1. Bom dia, consegui fazer o código, de primeira até funcionou, mas depois quando mando executar parece q fica em looping pois só fica executing query no sql server 2008.

    Poderiam me ajudar??

     

    exec DBO.MSP_BACKUP

    CREATE PROCEDURE DBO.MSP_BACKUP
    @PATH VARCHAR(200)='C:BACKUP'
    AS
    DECLARE @DATA VARCHAR(1000), @ARQ  VARCHAR(1000), @ZIP  VARCHAR(4000)
    SET @ARQ = 'DBCOTACAO' +CAST(DATEPART(DD, GETDATE())AS VARCHAR(2)) + '−' +
    CAST(DATEPART(MM, GETDATE()) AS VARCHAR(2)) + '−' +
    CAST(DATEPART(YYYY, GETDATE()) AS VARCHAR(4)) + '−' +
    CAST(DATEPART(HH, GETDATE()) AS VARCHAR(2)) + '−' +
    CAST( DATEPART(MM, GETDATE()) AS VARCHAR(2)) + '−' +
    CAST(DATEPART(SS, GETDATE()) AS VARCHAR(2)) + '−' +
    CAST(DATEPART(MS, GETDATE()) AS VARCHAR(6))
    SELECT @DATA = @PATH + @ARQ + '.BAK'
    BACKUP DATABASE dbcotacao TO  DISK = @DATA WITH  INIT ,  NOUNLOAD , NOSKIP ,  STATS = 10,  NOFORMAT
    SELECT @DATA
    SET @ZIP = 'C:PROGRA~1WINRARWINRAR.EXE A “' + @PATH + @ARQ + '.RAR” ' + '”' + @DATA + '”'
    PRINT @ZIP
    EXEC XP_CMDSHELL @ZIP
    SET @ZIP = 'DEL “' + @DATA + '”'
    PRINT @ZIP
    EXEC XP_CMDSHELL @ZIP

    EXEC sp_configure 'show advanced options', 1
    GO
    –Para atualizar o valor configurado no momento para as opções avançadas.
    RECONFIGURE
    GO
    –Para habilitar o recurso.
    EXEC sp_configure 'xp_cmdshell', 1
    GO
    –Para atualizar o valor configurado no momento para esta funcionalidade.
    RECONFIGURE
    GO

Deixe uma resposta