Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Backup SQL 2008


DanielP

Pergunta

Bom Dia,

Estou precisando fazer o backup FULL diário de toda a base do SQL 2008 de uma cliente e gostaria de saber se o script abaixo se aplica.

Antecipadamente agradeço a atenção.

DECLARE @BackupFile varchar(255), @DB varchar(30), @Description varchar(255), @LogFile varchar(50)

DECLARE @Name varchar(30), @MediaName varchar(30), @BackupDirectory nvarchar(200)
SET @BackupDirectory = 'C:\Backuped_SQL_DB\'
--Add a list of all databases you don't want to backup to this.
DECLARE Database_CURSOR CURSOR FOR SELECT name FROM sysdatabases WHERE name <> 'tempdb' AND name <> 'model' AND name <> 'Northwind'

OPEN Database_Cursor
FETCH next FROM Database_CURSOR INTO @DB
WHILE @@fetch_status = 0

BEGIN
SET @Name = @DB + '( Daily BACKUP )'
SET @MediaName = @DB + '_Dump' + CONVERT(varchar, CURRENT_TIMESTAMP , 112)

SET @BackupFile = @BackupDirectory + + @DB + '_' + 'Full' + '_' +
CONVERT(varchar, CURRENT_TIMESTAMP , 112) + '.bak'
SET @Description = 'Normal' + ' BACKUP at ' + CONVERT(varchar, CURRENT_TIMESTAMP) + '.'

IF (SELECT COUNT(*) FROM msdb.dbo.backupset WHERE database_name = @DB) > 0 OR @DB = 'master'
BEGIN
SET @BackupFile = @BackupDirectory + @DB + '_' + 'Full' + '_' +

CONVERT(varchar, CURRENT_TIMESTAMP , 112) + '.bak'
--SET some more pretty stuff for sql server.
SET @Description = 'Full' + ' BACKUP at ' + CONVERT(varchar, CURRENT_TIMESTAMP) + '.'

END
ELSE
BEGIN
SET @BackupFile = @BackupDirectory + @DB + '_' + 'Full' + '_' +
CONVERT(varchar, CURRENT_TIMESTAMP , 112) + '.bak'
--SET some more pretty stuff for sql server.

SET @Description = 'Full' + ' BACKUP at ' + CONVERT(varchar, CURRENT_TIMESTAMP) + '.'
END
BACKUP DATABASE @DB TO DISK = @BackupFile
WITH NAME = @Name, DESCRIPTION = @Description ,

MEDIANAME = @MediaName, MEDIADESCRIPTION = @Description ,
STATS = 10
FETCH next FROM Database_CURSOR INTO @DB
END
CLOSE Database_Cursor
DEALLOCATE Database_Cursor

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Olá Fulvio,

Isso mesmo. Preciso somente do backup FULL, mas ele tem que ser diário e automatizado sempre ao final do dia.

Boa tarde Daniel,

Fazer backup Full apenas?

BACKUP DATABASE NomeBanco TO DISK='C:\Backup\Backup.bak'

Se for do Servidor, crie uma temporária com o nome dos BD´s, depois com o WHILE vá alterando o nome do Banco.

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos lá:

- Abra o Management Studio.

- Abra a janela Object Explorer.

- Duplo clique no nome do Servidor, para abrir as pastas.

- Duplo clique em SQL Server Agent.

- Aparacerá a pasta JOB.

- Clique com o botão direito do mouse, e escolha New JOB.

- Aparecerá uma tela para você configurar todo o processo. É bem intuitiva.... rs.

- Na opção General, você fará uma descrição do que se trata o JOB.

- Na opção STEP, embaixo da tela você clicará em NEW e dará o nome a um novo STEP.

- Coloque seu script na tela q aparecerá. Só não esqueça de identificar nesta tela, qual BD o script rodará....rs...

- Na opção Schedules você fará o agendamento. Clique em NEW e faça as configurações.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Fulvio,

Muito Obrigado pela sua ajuda. O script está perfeito e o backup está sendo feito normalmente. Gostaria de lhe pedir mais uma ajuda com relação a este backup.

Como devo proceder para acrescentar ao script do JOB que já está em funcionamento um script para que seja realizada tb backup Diferencial e Incremental somente aos finais de semana.

Mais uma vez muito obrigado pela ajuda.

Link para o comentário
Compartilhar em outros sites

  • 0
Vamos lá:

- Abra o Management Studio.

- Abra a janela Object Explorer.

- Duplo clique no nome do Servidor, para abrir as pastas.

- Duplo clique em SQL Server Agent.

- Aparacerá a pasta JOB.

- Clique com o botão direito do mouse, e escolha New JOB.

- Aparecerá uma tela para você configurar todo o processo. É bem intuitiva.... rs.

- Na opção General, você fará uma descrição do que se trata o JOB.

- Na opção STEP, embaixo da tela você clicará em NEW e dará o nome a um novo STEP.

- Coloque seu script na tela q aparecerá. Só não esqueça de identificar nesta tela, qual BD o script rodará....rs...

- Na opção Schedules você fará o agendamento. Clique em NEW e faça as configurações.

Funcionou perfeitamente aqui também!

Obrigado fulvio.

Ps.: Você é DBA? Em todos os tópicos de Banco de Dados você auxilia hehe.

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 0
Olá Fulvio,

Muito Obrigado pela sua ajuda. O script está perfeito e o backup está sendo feito normalmente. Gostaria de lhe pedir mais uma ajuda com relação a este backup.

Como devo proceder para acrescentar ao script do JOB que já está em funcionamento um script para que seja realizada tb backup Diferencial e Incremental somente aos finais de semana.

Mais uma vez muito obrigado pela ajuda.

Bom dia Daniel,

Na mesma tela em que colocou o script de backup, pode colocar os outros scripts. Se ficar muito grande ou "bagunçado", pode criar um novo Step. Aí terá q fazer mais algumas configurações: Qual step rodará em primeiro e depois de executado, qual o passo a seguir (ir para o próximo step, finalizar, reportar erro, etc).

Mas como você quer que este script rode apenas final de semana, você terá que criar outro JOB. O agendamento é do JOB em si. Não tem como você agendar parte dele.

Se quiser tudo em um JOB apenas, pode-se fazer uma "adaptação"... rs. Fazer um script que recupere o dia da semana e colocar um IF. Caso seja sábado ou domingo, executar o IF.

Bem, coloquei várias opções pra ver a melhor para vc. Qualquer dúvida, pode postar!

Vamos lá:

- Abra o Management Studio.

- Abra a janela Object Explorer.

- Duplo clique no nome do Servidor, para abrir as pastas.

- Duplo clique em SQL Server Agent.

- Aparacerá a pasta JOB.

- Clique com o botão direito do mouse, e escolha New JOB.

- Aparecerá uma tela para você configurar todo o processo. É bem intuitiva.... rs.

- Na opção General, você fará uma descrição do que se trata o JOB.

- Na opção STEP, embaixo da tela você clicará em NEW e dará o nome a um novo STEP.

- Coloque seu script na tela q aparecerá. Só não esqueça de identificar nesta tela, qual BD o script rodará....rs...

- Na opção Schedules você fará o agendamento. Clique em NEW e faça as configurações.

Funcionou perfeitamente aqui também!

Obrigado fulvio.

Ps.: Você é DBA? Em todos os tópicos de Banco de Dados você auxilia hehe.

Abraço.

Bom dia Lucas,

Sim, sou DBA. rs. Quando comecei com SQL, sempre tive muitas dúvidas e não havia ninguém pra auxiliar. Pra diminuir o "sofrimento" de quem está começando, tento sempre colaborar com o pessoal do Fórum.... :.)

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde Fulvio,

Muito obrigado pela ajuda.

Uma última questão...hehehe. Estruturei o JOB para a realização do Backup FULL diário, sempre às 22 horas, mas o único problema que está ocorrendo é que ao invés do backup do dia seguinte sobrescrever o do dia anterior ele está somando o tamanho do arquivo.

Por exemplo: backup realizado às 22:00 horas do dia 05.07.2010 - tamanho do arquivo - 2GB

backup realizado às 22:00 horas do dia 06.07.2010 - tamanho do arquivo - 4GB

O arquivo não deveria ter sido substituído?

Muito Obrigado mais uma vex pela ajuda. Abraço.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...