none
Automatizando Inserção de Dados de Backup RRS feed

  • Pergunta

  • Bom dia,

    Estou aqui mais uma vez, com uma duvida.

      Tenho uma servidor, que nele contem uma pasta BACKUP (que seria os backup de alguns servidores da empresa), dentro dessa pasta tenho as subpastas com os nomes dos servidores.

    Tenho uma tabela Backup no  meu SQL 2012 (Express) . com as seguintes colunas:

    Data_Backup -   Servidor  -  Volume  -  Caminho 

     Hoje para alimentar essa tabela, faço a inserção manualmente. Pra saber o volume, eu clico com botão direito na pasta do servidor e la terei o tamanho. 

    Isso era pra ser feito mensalmente, agora estou fazendo semanalmente. Como quando clico com o botão direito ele já me retorna o tamanho até maior ou igual ao do mês anterior, pra saber o tamanho da semana, faço o tamanho atual menos o tamanho anterior, o resultado é o meu tamanho da semana.

     Alguem pode me ajudar a fazer isso automaticamente?

    quarta-feira, 13 de novembro de 2013 11:10

Todas as Respostas

  • Bom dia SS,

    Você está chamando a rotina de backup diretamente pelo SQL Server ou está usando script personalizado?

    At.
    Rafael

    quarta-feira, 13 de novembro de 2013 11:43
  • Oi Rafael, 

    No momento esse backup esta sendo feito pelo windows apenas e esta configurado para manda-lo para a pasta BACKUP. Não tenho rotina e nem esta direta com o sql, inserto no banco na mão mesmo.



    • Editado SS_DBAJr quarta-feira, 13 de novembro de 2013 11:56
    quarta-feira, 13 de novembro de 2013 11:51
  • Ok.

    Se a rotina está sendo chamada pelo windows (e não por um job do sqlserver), provavelmento vc tem um script .sql com as instruções de backup e que é agendado pelo scheduler do proprio windows com sqlcmd ou algo parecido. Caso se esse for o caso, a informação de histórico de backup já estão sendo gravadas no banco msdb, inclusive com o tamanho do backup, diretório gravado, etc... Dê uma olhada nessas tabelas no banco msdb.

    select * from msdb.dbo.backupfile
    select * from msdb.dbo.backupfilegroup
    select * from msdb.dbo.backupmediafamily
    select * from msdb.dbo.backupmediaset
    select * from msdb.dbo.backupset

    At.
    Rafael

    quarta-feira, 13 de novembro de 2013 12:09
  • Rafael

    ele me traz as informações sobre as tabelas né?!

    quarta-feira, 13 de novembro de 2013 12:35
  • Essas tabelas guardam informações de backups, ou seja, os históricos de execuções dos seu backups de cada servidor. Acredito que todas as informações que você está procurando tem nessas tabelas...,porém, essas tabelas são temporariamente "purgadas", dependendo da politica adotada pelo dba. Mas se vc deseja centralizar essas informações em um unico servidor, faça um job com script que leia essas tabelas e insira em sua base de controle.

    At.
    Rafael


    quarta-feira, 13 de novembro de 2013 12:49
  • Rafael, peço desculpa, mas não entendi muito bem.

      Preciso  pegar dados de backup do servidor de aplicação e servidor de arquivos, como vou pegar atraves dessas tabelas??

    Eles realmente me trazem os dados necessários, mas das tabelas, deesculpa minha ignorancia, mas não vejo como utiliza-lo;

    Não sei se seria o caso de ler o log do windows .. que tbm nunca fiz, to apenas chutando.


    quarta-feira, 13 de novembro de 2013 15:52
  • Rafael,

    Acredito que estes blocos de código podem te ajudar:

    USE msdb
    GO
    SELECT backup_start_date,type, physical_device_name,backup_set_id 
    FROM backupset bs inner join backupmediafamily bm
    ON bs.media_set_id = bm.media_set_id
    WHERE database_name ='AdventureWorks'
    ORDER BY backup_start_date desc
    --
    SELECT filegroup_name,logical_name,physical_name 
    FROM msdb..backupfile
    WHERE backup_set_id = 8 --change to your backup_set_id

    Use Master
    --Retorna Informações sobre as mídias de backup --
    Restore LabelOnly from Disk = 'C:\Backup\Backup-Simples-Criptografia.bak'
    --Retorna Informações sobre os backups --
    Restore HeaderOnly from Disk = 'C:\Backup\Backup-Simples-Criptografia.bak'
    /* O comando RESTORE VERIFYONLY realiza uma checagem na integridade dos backups de um 
    dispositivo, verificando se o mesmo é legível, este comando não verifica a estrutura de 
    dados existente dentro do backup. Se o backup for válido, o SQL Server retorna uma mensagem 
    de sucesso.*/
    Restore VerifyOnly from Disk = 'C:\Backup\Backup-Simples-Criptografia.bak'
    -- Retorna informações sobre os arquivos de dados e log (*.mdf, *.ndf e *.ldf) armazenados em um dispositivo --
    Restore FileListOnly from Disk = 'C:\Backup\Backup-Simples-Criptografia.bak'


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Sugerido como Resposta Giovani Cr segunda-feira, 25 de novembro de 2013 10:43
    sexta-feira, 22 de novembro de 2013 22:53