À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