Gente,
Quiero dejarles un
script útil que les permitirá tener controlado el espacio disponible en disco
siempre.
Los valores que
devuelve por unidad lógica son: Gb Libres, total de GB de la unidad y % de Gb libres restantes.
Para ello deben
primero configurar vuestro server para que les permita usar los “Ole Automation
Procedures” que este sp utiliza.
“Go down on business” entonces :
-------------------------------------------
-- Habilita -
"Ole Automation Procedures --
-------------------------------------------
sp_configure 'show advanced
options', 1
GO
RECONFIGURE;
GO
sp_configure
'Ole Automation Procedures', 1
GO
RECONFIGURE;
GO
sp_configure
'show advanced options',
1
GO
RECONFIGURE;
------------------------------------------------
-- Informa
espacio libre en unidades de disco -
-- Autor: GRH -
Sql Server Para Todos -
------------------------------------------------
DECLARE
@hr int,
@fso int,
@drive char(1),
@odrive int,
@TotalSize varchar(20),
@MB bigint
SET @MB = 1048576
CREATE TABLE #drives (drive char(1) PRIMARY KEY,
FreeSpace int NULL,
TotalSize int NULL)
INSERT #drives(drive,FreeSpace)
EXEC master.dbo.xp_fixeddrives
EXEC @hr=sp_OACreate 'Scripting.FileSystemObject',@fso
OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
DECLARE dcur CURSOR LOCAL FAST_FORWARD
FOR SELECT drive from #drives
ORDER by drive
OPEN dcur
FETCH NEXT FROM dcur INTO @drive
WHILE @@FETCH_STATUS=0
BEGIN
EXEC @hr = sp_OAMethod @fso,'GetDrive', @odrive OUT, @drive
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
EXEC @hr = sp_OAGetProperty @odrive,'TotalSize', @TotalSize OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @odrive
--
UPDATE #drives
SET TotalSize=@TotalSize/@MB
WHERE drive=@drive
FETCH NEXT FROM dcur INTO @drive
END
CLOSE dcur
DEALLOCATE dcur
EXEC @hr=sp_OADestroy @fso
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
El resultado obtenido será el siguiente:
** TIP - Pueden guardar estos datos en una tabla y medir de ese modo el % de crecimiento de utilización de vuestros discos duros proyectando el espacio necesario a futuro.
Pueden armar una alerta que, cuando el espacio disponible en disco caiga por debajo de x gb dispare un correo.
Eso es todo amigos, amigable y sencillo.
Saludos cordiales desde Argentina.
hola buenas tardes....
ResponderEliminar** TIP - Pueden guardar estos datos en una tabla y medir de ese modo el % de crecimiento de utilización de vuestros discos duros proyectando el espacio necesario a futuro.
Pueden armar una alerta que, cuando el espacio disponible en disco caiga por debajo de x gb dispare un correo.
ES JUSTO LO QUE TENGO QUE HACER, ME PUEDES APOYAR....?
Hola ha pasado bastante tiempo desde tu pregunta, te comparto una url que me sirvió para monitorear el espacio de los discos, espero te sirva.
Eliminarhttps://es.claytabase.com/Servicios-de-consultor%C3%ADa-de-bases-de-datos/Art%C3%ADculos-t%C3%A9cnicos/Usando-datos-del-servidor-SQL-2008-para-planes-de-mantenimiento/Espacio-en-disco-y-tama%C3%B1o-de-la-base-de-alertas
como le hago para ver esa tabla?
ResponderEliminarLa tabla es donde se hizo el insert, pero si lo quieres ver en GB y no en megas, sería el siguiente.
Eliminarselect drive
, FreeSpace/1024 AS espacioLibre
, TotalSize/1024 AS espacioTotal
from #drives