SCRIPT TAMANHO ARQUIVOS BANCOS POR SERVIDOR

 

Este script ira gera o código para o job que ira recolher dos servidores com o nome e tamanhos dos arquivos dos bancos de dados referentes a cadas servidor.

ESTE SCRIPT É MUITO ÚTIL PARA MANUTENÇÃO DE SHRINK NOS ARQUIVOS DE LOGS DOS BANCOS.

 

Fique ligado que o Usuário do linked server tem que ter acesso total + deny data write no banco do master

 

 DECLARE @nome_banco varchar(50)

DECLARE lista CURSOR SCROLL FOR 

SELECT /*[nome]

      ,[ip]

      , */  

      [hostname]

     /* ,[descricao]

      ,[tipo_servidor]

      ,[ativo]

      ,[drive_backup_local]

      ,[drive_backup_rede]

      ,[sist_op]

      ,[sgbd]

      */

  FROM [Control_Data_Base].[dbo].[servidores] where ativo='YES' /* and nome='BIUBIU ;-)' */ AND sgbd='Sql Server 2008 R2' ORDER BY tipo_servidor, nome 

 

OPEN lista

-- Primeiro registro

FETCH FIRST FROM lista INTO @nome_banco

WHILE @@FETCH_STATUS = 0

BEGIN

print '/*****************************************************/'

print '/* Auditoria Bancos por SERVIDOR = '+RTRIM(@nome_banco)+' */'

print '/*****************************************************/'

print 'INSERT INTO [Control_Data_Base].[dbo].[bancos_servidores]

      ( [hostname]

      ,[dbname]

      ,[filetype]

      ,[location]

       ,[date_check]

       ,[Gigas]

       )              

SELECT   '''+RTRIM(@nome_banco)+''', db.name,    type_desc ,    Physical_Name ,Getdate()  ,((size*8) / 1024) /1024 as Gigas FROM    '+RTRIM(@nome_banco)+'.master.sys.master_files mf

INNER JOIN     '+RTRIM(@nome_banco)+'.master.sys.databases db ON db.database_id = mf.database_id

 

'

-- Próximo registro

FETCH NEXT FROM lista INTO @nome_banco

END

CLOSE lista

DEALLOCATE lista