Ir al contenido principal

Monitoreo de espacio libre en discos desde SQL Server


Update: Una nueva opcion, con powershell esta disponible en el siguiente link, recomiendo mas utilizar la nueva y personalizarla de acuerdo a los requerimientos personales.

http://dbamex.blogspot.mx/2017/10/revision-de-espacio-en-servidores.html


Post original:


Uno de los principales indicadores que se tiene que tomar en cuenta como DBA es el espacio disponible en disco. No es problema cuando se tiene un server o 2 para monitorear, sin embargo cuando hay una cantidad considerable automatizar un proceso que lo haga es lo mejor.

Dentro de SQL Server (7,2000,2005) hay un procedimiento no documentado que nos puede ayudar a cumplir este cometido.

El procedimiento es XP_FIXEDDRIVES, no lleva parámetros ni nada y nos regresa todos los discos a los que tiene acceso SQL Server y su espacio disponible en Megabytes.
Si esta en cluster mostrara todos los discos aunque los discos no esten en el mismo grupo que la instancia, lo que puede llegar a confundir.
Dejo a consideración de cada quien como utilizarlo, ya sea mandando un mail con el resultado o opciones mas complejas como el revisar un porcentaje y en base a eso tomar una acción.

Espero que les sea útil.

Saludos.

Comentarios

  1. gracias por el dato, me preocupa un poco eso de que sea un procedimiento no documentado, en cualquier momento lo pueden cambiar o quitar en versiones futuras y no tendriamos nada que alegar.

    ResponderBorrar
  2. podria ser util combinado con un job que periodicamente revise los discos del server, enviar alertas via email al administrador, para asi evitar que se cuelguen las aplicaciones cuando se acabe el espacio en disco

    ResponderBorrar
  3. en SQL 2005, SQL 2008 y 2012 aun mantienen el procedimiento.

    ResponderBorrar
  4. Muy bueno, de gran ayuda

    ResponderBorrar
  5. Talvez puedes ayudarme con esto, como puedo saber el tamaño de cada particion de analisis services tambien por codigo

    ResponderBorrar
  6. gracias

    CREATE TABLE #sp_who3A (mydrive VARCHAR(255), mymbfree INT)
    INSERT INTO #sp_who3A EXEC XP_FIXEDDRIVES

    SELECT * FROM #sp_who3A

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Como saber que Service Pack tengo instalado en SQL Server?

Para saber que Service pack se tiene instalado en SQL Server, Hay que ejecutar el siguiente comando: SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') Este regresa algo parecido a: 9.00.3042.00 SP2 Enterprise Edition El primer registro es la versión, el segundo es el nivel de producto (en este caso Service pack 2), y el ultimo es la edición, En este caso Enterprise. Esta es una tabla con las versiones de SQL y su respectivo Service pack. RTM SP1 SP2 SP3 SP4 SQL Server 2017 SQL Server 2016 13.0.2149.0 13.0.4001.0 SQL Server 2014 12.0.2000.8 12.0.4100.1 12.0.5000.0 SQL Server 2012 11.0.2100.60 11.0.3000.00 11.0.5058.0 11.0.6020.0 11.0.7001.0 SQL Server 2008 R2 10.50.1600.1 10.50.2500.0 10.50.4000.0 10.50.6000.34 SQL Server 2008 10.00.1600.22   10.00.2531.00 10.00.4000.00 10.00.5500.00 10.0.6000.29 SQL Server 2005 9.00.1399 9.00.2047 9.00.3042 9.00.4035 9.00.5000 SQL Serve

Eliminar archivelogs desde RMAN

Estos son algunos ejemplos para eliminar los archivelogs desde RMAN. Para eliminara todos los archivos expirados sin pedir confirmación. delete noprompt expired archivelog all; Para eliminar los archive logs expirados de algún folder en especifico (Pedirá confirmación antes de borrar): delete expired archivelog like '+FRA/STACK/ARCHIVELOG/2017_03_12/%'; Para eliminar archive logs basados en la fecha de creación, por ejemplo archive logs de mas de 7 dias.  (Sin confirmacion) delete archivelog until time 'sysdate - 7'; Borrar archivelogs hasta una secuencia en especifico: delete archivelog until sequence = 43; Borrar archivelogs desde una secuencia en especifico: (Usar con precaución) delete archivelog from sequence = 38; Combinándolas: delete archivelog from sequence = 38 until sequence = 47; Saludos. F.R.

Mover Bases de Datos Replicadas, sin deshacer replicacion. Mover Distribution database

Hay veces por el crecimiento de una BD que puede ser necesario mover un datafile, de una Base de datos que esta siendo replicada a otro disco. El procedimiento normal seria hacer un detach de la BD y mover los datafiles al nuevo drive, sin embargo esto no es posible cuando una BD esta replicada. Para estos casos se tendria que deshacer la replica, hacer detach de la BD, mover los datafiles hacer attach de las BD y volver a crear la replica. En SQL 7 y SQL 2000 hay un camino mas facil. Cabe mencionar que como involucra actualizar manualmente las tablas de sistema esto NO esta soportado por Microsoft. Aunque yo lo he hecho muchas veces y nunca he tenido problemas. Primero hay que activar el setting "Allow Modifications to be made directly to the system catalogs" que esta en Server Settings en las opciones del Servidor en el enterprise manager. Recuerden sacar un respaldo de Master por cualquier problema que podamos llegar a tener. Una vez hecho esto matamos o desconectamos toda