Em ambientes sem estes recursos, ou onde você prefirar criar manualmente estas atividades, sugiro o script abaixo, que irá selecionar todos os databases existentes na instância do servidor e executar para cada um a instrução de backup.
Para automatizar este procedimento copie o código abaixo e coloque em um arquivo neste exemplo chamado BACKUP.SQL.
Observe no início do script que tem o destino dos arquivos gerados pela rotina, altere conforme a tua necessidade.
DECLARE @name VARCHAR(150) -- Nome do Database  
DECLARE @path VARCHAR(256) -- Caminho do arquivo de backup
DECLARE @fileName VARCHAR(256) -- Arquivo do backup  
-- Define caminho de destino do backup
SET @path = 'D:\Backup\'  
-- Cria um cursor para selecionar todas as databases,  
--  excluindo model, msdb e tempdb
DECLARE db_cursor CURSOR FOR  
   SELECT name 
     FROM master.dbo.sysdatabases 
    WHERE name NOT IN ('model','msdb','tempdb')  
-- Abre o cursor e faz a primeira leitura 
OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   
-- Loop de leitura das databases selecionadas
WHILE @@FETCH_STATUS = 0   
BEGIN   
   SET @fileName = @path + @name + '.BAK'  
   -- Executa o backup para o database
   BACKUP DATABASE @name TO DISK = @fileName WITH FORMAT;  
   FETCH NEXT FROM db_cursor INTO @name   
END   
-- Libera recursos alocados pelo cursor
CLOSE db_cursor   
DEALLOCATE db_cursor 
A seguir crie outro arquivo chamado BACKUP.BAT com o conteúdo abaixo:
osql -E -S Servidor -i "d:\backup\sql\BackupBancos.SQL"Agora basta criar um agendamento do próprio Windows chamando o arquivo BACKUP.BAT.
 
 
Show de bola, me economizou varias horas de trabalho ..
ResponderExcluirO script funcionou perfeitamente (só inclui o banco master para não ser backupiado também), mas o BAT não esta funcionando.
ResponderExcluirTiago, faltava fechar as aspas na instrução do arquivo BAT, já editei o post, por favor tente novamente com a nova instrução.
ResponderExcluirNo meu caso não rolou devido a problemas de login no banco. É possível editar o script para incluir as credenciais de login?
ResponderExcluirPara colocar as credenciais de login, utilize os parâmetros -U e -P e remova o -E. Por exemplo:
ResponderExcluirosql -U sa -P senha -S Servidor -i "d:\backup\sql\BackupBancos.SQL"
Boa tarde Cesar. Muito bacana sua dica.
ExcluirMe diz uma coisa, pois sou leigo em sql server, o que devo colocar no campo Servidor?
Abraço.
Cesar Funcionou perfeitamente!
ResponderExcluirVocê teria alguma explicação para executarmos por cada base, ao invés de fazer todos de uma vez?
Obrigado,
Me desculpa mas não entendi a pergunta.
ExcluirAcho que isso responde a sua pergunta:
ExcluirBACKUP DATABASE AdventureWorks2012
TO DISK = 'Z:\SQLServerBackup\AdventureWorks2012.bak';
GO
Me ajudou muito, fiz umas implementacoes e pode servir para outros. Abaixo as alteracoes:
ResponderExcluir--inclui essa variavel para pegar o dia do backup
DECLARE @dia VARCHAR(10) -- dia do backup
--formata o dia no padrao iso (yymmdd)
SET @dia = CONVERT (varchar,GETDATE(), 112)
--remove os espacos
SET @fileName = LTRIM( @path + @name + @dia + '.bak')
Cesar e Luiz, muito obrigado pelo Script e boa vontade! Valeu a força!
ResponderExcluirE como seria para backup incremental?
ResponderExcluirComo faz o Restore deste Backup
ResponderExcluiraqui nao da certo
ResponderExcluir