segunda-feira, 3 de outubro de 2011

Histórico de tamanho de Backup de banco de dados

Hoje precisei levantar a seguinte informação: qual o histórico de crescimento de banco de dados. Pesquisei um pouco na Internet e localizei este link com uma função que fazia justamente isto.

 

Fiz algumas alterações no original e ficou assim:

 

CREATE FUNCTION dbo.GetBackupHistory(@DbName SYSNAME)

RETURNS TABLE

AS

RETURN (

    SELECT bs.database_name AS [Banco Analisado]

        , case

                  when bs.type = 'D' then 'Full'

                  when bs.type = 'L' then 'Log'

                  when bs.type = 'I' then 'Differential'

              end AS [Tipo de Backup] -- 'D' is a FULL backup, 'L' is log, and 'I' is DIFFERENTIAL (of course!)

        , CAST ( bs.backup_size / 1024.0 / 1024 AS DECIMAL(10, 2) ) AS [Tamanho do Backup em MB]

        , CAST ( bs.backup_size / 1024.0 / 1024 / 1024 AS DECIMAL(10, 2) ) AS [Tamanho do Backup em GB]

        , bs.backup_start_date AS [Início do Backup]

        , bs.backup_finish_date AS [Fim do Backup]

        , DATEDIFF ( ss, bs.backup_start_date, bs.backup_finish_date ) AS [Tempo de Backup Segundos]

        -- We don't use DATEDIFF(minute...) here because of how integer-only math works

        , CAST ( DATEDIFF ( ss, bs.backup_start_date, bs.backup_finish_date ) / 60.0 AS DECIMAL(10,2) ) AS [Tempo de Backup Minutos]

        , bs.name AS [Nome do BackupSET]

        , bs.description AS [Descrição do BackupSET]

        , bs.[user_name] AS [Usuário Vinculado ao JOB]

        , CAST(bs.software_major_version AS VARCHAR) + '.' + CAST(bs.software_minor_version AS VARCHAR) + '.'

            + CAST(bs.software_build_version AS VARCHAR) AS [Build da Versão]

        , bs.server_name AS [Nome do Servidor]

        , bs.machine_name AS [Nome da máquina]

        , bs.collation_name AS Collation

        , bmf.physical_device_name AS [Dispositivo de Destino]

    FROM msdb.dbo.backupset bs JOIN msdb.dbo.backupmediafamily bmf

        ON bs.media_set_id = bmf.media_set_id

    WHERE bs.database_name = @DbName

)

GO

 

SELECT * FROM GetBackupHistory('FTStage') ORDER BY [Início do Backup] DESC

 

É possível adicionar outras informações ao seu relatório, basta pesquisar nas tabelas msdb.dbo.backupset, msdb.dbo.backupmediafamily. Verifique os outros campos destes objetos e os adicione de acordo com a sua necessidade.

 

Abs

Nenhum comentário:

Postar um comentário

Leave your comment here!