locked
Backup e Restore SQL 2000 RRS feed

  • Pergunta

  • Pessoal,

     

    Gostaria de uma ajuda de vocês.

    Estou construindo uma politica de backup para os bancos de dados onde realizo backup full uma vez por semana e nos demais dias realizo um backup diferencial, porem gostaria de implementar esta rotina automatica.

    O backup full ja roda corretamente e automaticamente, eu os criei pelo maintenance plans do sql server, porem não consegui uma opção que faça o mesmo com os backups diferenciais diarios.

    Alguem tem alguma ideia de como implementar isso?

     

    att.

    quinta-feira, 19 de julho de 2007 11:39

Respostas

  • MlPelegrini,

     

    Mas esta rotina não vai controlar o tempo de validade do arquivo?

     

    Veja o exemplo, para acrescentar a data no nome do arquivo.

     

    Declare @Comando VarChar(1000)

    Set @comando='Backup Database Laboratorio To Disk = ''F:\SYS\MSSQL_BACKUP\Laboratorio-Diff.bak'

                            +Convert(Char(10),GetDate(),103)

                            +' With Differential, Init,

                             Description=''Backup Laboratório - Posição diferencial em relação ao Backup Full'

     

    Select @Comando

    quinta-feira, 19 de julho de 2007 12:39
    Moderador

Todas as Respostas

  • MLPelegrini,

     

    Você poderia cria um Job e neste job, acrescentar vários step's(passos), em que um deles realizando o backup diferencial para cada banco, com isso, você poderá configurar a execução deste job diariamente.

     

    Atrávés deste script eu realizo o backup, veja o exemplo:

     

    Backup Database Laboratorio

    To Disk = 'F:\SYS\MSSQL_BACKUP\Laboratorio-Diff.bak'
       With Differential, Init,
       Description='Backup Laboratório - Posição diferencial em relação ao Backup Full'

    quinta-feira, 19 de julho de 2007 12:14
    Moderador
  • Pedro,

    Gostaria de armarzenar estes arquivos por uma semana ate o proximo backup full, como posso criar uma rotina que cria o nome do backup automatico, com a data do dia? ex. Laboratorio-Diff-019072007.bak

    quinta-feira, 19 de julho de 2007 12:32
  • MlPelegrini,

     

    Mas esta rotina não vai controlar o tempo de validade do arquivo?

     

    Veja o exemplo, para acrescentar a data no nome do arquivo.

     

    Declare @Comando VarChar(1000)

    Set @comando='Backup Database Laboratorio To Disk = ''F:\SYS\MSSQL_BACKUP\Laboratorio-Diff.bak'

                            +Convert(Char(10),GetDate(),103)

                            +' With Differential, Init,

                             Description=''Backup Laboratório - Posição diferencial em relação ao Backup Full'

     

    Select @Comando

    quinta-feira, 19 de julho de 2007 12:39
    Moderador
  • OK,

    Você conhece alguma forma de controlar isso via job ou maintenace plans?

    quinta-feira, 19 de julho de 2007 12:49
  • MLPelegrini,

     

    A principio eu desconheço, mas vou procurar!!!

    quinta-feira, 19 de julho de 2007 13:37
    Moderador
  • Boa tarde!

     

    Junior,

     

    Minha situação é parecida, eu faço o backup full ao meio dia e ao final do expediente. Durante esse intervalo, eu quero fazer o backup diferencial de hora em hora e adicionar a data e hora no nome do arquivo.

     

    Além disso, seria interessante se no dia seguinte, o job sobrescrevesse os arquivos.

     

    É possível?

    terça-feira, 23 de outubro de 2007 16:50
  • Osmar

     

    Consegui fazer o backup diferencial do ultimo backup full com o comando abaixo:

     

    -- Dia da semana que vai compor o nome do arquivo.

    DECLARE @diasemana VARCHAR(1)

    -- Caminho onde o backup sera criado.

    DECLARE @caminhobkp VARCHAR(8000)

    -- Capturando o dia da semana

    SELECT @diasemana = datepart(dw,getdate())

    -- Configurando o caminho do backup

    SET @caminhobkp = '<Caminho de gravação>\nome_do_banco'+@diasemana+'.bak'

    -- Realizando o backup

    BACKUP DATABASE <Nome do Banco>
       TO DISK = @caminhobkp
       WITH DIFFERENTIAL,
       INIT,
       DESCRIPTION = 'Backup Diferencial'
    GO

     

    Acho que se adaptar este codigo para o seu banco você consegue criar o backup.

     

    Att

    terça-feira, 23 de outubro de 2007 18:10
  •  

    MlPelegrini,

     

    Realmente o codigo funciona, mas após o nome do arquivo ele inseriu apenas o número '3'. Será que precisamos adicionamos mais algum comando pra que o arquivo seja nomeado da seguinte forma: Nome23102007.bkp ?

     

     

    terça-feira, 23 de outubro de 2007 18:46
  • Osmar,

     

    Altere o select que captura o dia da semana pelo select abaixo:

    SELECT @diasemana = CONVERT(VARCHAR(20), GETDATE(), 112)

    Assim o nome do arquivo sera gerado da seguinte forma banco20031023.bak, esse formato lhe atende?

    Se a resposta for não, de uma olhada no Help do SQL Server nas opções de CONVERT / CAST, neste item você pode encontrar algumas informações sobre formato de datas que consegue armazenar e gerar o nome do arquivo.

     

    Att

     

    terça-feira, 23 de outubro de 2007 19:03
  • Outro detalhe altere a varial @diasemana de VARCHAR(1) para VARCHAR(20) se não vai dar erro ao rodar o script.
    terça-feira, 23 de outubro de 2007 19:04
  •  

    Não deu certo mesmo assim. Ele pegou ele exibiu agora o número 2 após o nome do arquivo!

     

    Existe uma forma de criar um job para fazer o backup onde ele sempre crie um novo arquivo, ou seja, não faça append nem overwrite?

     

    terça-feira, 23 de outubro de 2007 21:30