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