À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


Deixe um comentário