Script simples para backup de todos os bancos de dados do SQL Server

Às vezes as coisas que parecem complicadas são muito mais fácil do que você pensa e isso é o poder de usar T-SQL para cuidar de tarefas repetitivas. Uma dessas tarefas pode ser a necessidade de backup de todos os bancos de dados em seu servidor. Este não é um grande negócio se você tem um punhado de bancos de dados, mas eu tenho visto vários servidores onde existem mais de 100 bancos de dados na mesma instância do SQL Server. Você pode usar o SQL Server Management Studio para fazer backup dos bancos de dados ou até mesmo usar planos de manutenção, mas usando T-SQL é uma abordagem muito mais simples e mais rápido.

Com o uso de T-SQL é possível gerar os comandos de backup e com o uso de cursores, você pode deslocar o cursor através de todos os seus bancos de dados para apoiá-los um por um. Este é um processo tranquilo e você só precisa de um punhado de comandos para fazer isso.

Aqui está o script que irá permitir que você faça backup de cada banco de dados dentro de sua instância do SQL Server. Você vai precisar para mudar o path para o diretório de backup apropriado.

 

Nomeação de arquivos Formato DBname_YYYYDDMM.BAK

 

DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(256) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name
 
-- Especifica o diretório para o backup dos bancos
SET @path = 'C:\Backup\'  
 
-- Especifica o formato do arquivo
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 
 
DECLARE db_cursor CURSOR FOR  
SELECT name 
FROM master.dbo.sysdatabases 
WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   
 
WHILE @@FETCH_STATUS = 0   
BEGIN   
       SET @fileName = @path + @name + '_' + @fileDate + '.BAK'  
       BACKUP DATABASE @name TO DISK = @fileName  

        FETCH NEXT FROM db_cursor INTO @name   
END   

 
CLOSE db_cursor   
DEALLOCATE db_cursor

Nesse script estamos ignorando os bancos de dados do sistema, mas estes podem ser facilmente incluídos também. Você também pode montar o script em um procedimento armazenado e passar um nome de banco de dados ou se for NULL ele fará backup de todos os bancos de dados. Qualquer maneira que você escolher usá-lo, este script lhe dá o ponto de partida para um simples backup de todos os seus bancos de dados.

Além disso, se você quiser ignorar alguns dos seus bancos de dados de usuário, você pode incluí-los no NOT IN da seção também.

Próximos Passos
  • Adicionar este script para sua caixa de ferramentas
  • Modificar este script e torná-lo um procedimento armazenado para incluir um ou vários parâmetros
  • Melhore o script para usar as opções de backup adicionais
Marcado com: , , , , , , , , , , , , , , , ,
Publicado em Administração SQL, Scripts

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Arquivos
Follow SQL DATA BLOG on WordPress.com
%d blogueiros gostam disto: