Cómo monitorear tablespaces y su crecimiento en Oracle
Un tablespace lleno detiene las escrituras y puede tumbar la aplicación. Monitorear el espacio a tiempo evita paros no planeados.
- 1
Revisa el uso por tablespace
Cruza espacio asignado contra libre para ver el porcentaje ocupado de cada tablespace.
SELECT df.tablespace_name, ROUND(df.total/1024/1024) mb_total, ROUND((df.total - NVL(fs.libre,0))/1024/1024) mb_usado, ROUND((df.total - NVL(fs.libre,0))/df.total*100,1) pct_uso FROM (SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name) df LEFT JOIN (SELECT tablespace_name, SUM(bytes) libre FROM dba_free_space GROUP BY tablespace_name) fs ON df.tablespace_name = fs.tablespace_name ORDER BY pct_uso DESC; - 2
Verifica el autoextend de los datafiles
Un datafile sin autoextend o con maxbytes bajo se llena aunque el disco tenga espacio.
SELECT tablespace_name, file_name, autoextensible, maxbytes FROM dba_data_files; - 3
Agranda cuando haga falta
Agrega un datafile o sube el máximo. Confirma primero que el disco tenga espacio físico.
ALTER TABLESPACE users ADD DATAFILE '/u01/oradata/users02.dbf' SIZE 1G AUTOEXTEND ON MAXSIZE 10G; - 4
Vigila el crecimiento con el segment advisor
Identifica los segmentos que más crecen para anticipar necesidades de espacio.
SELECT segment_name, bytes/1024/1024 mb FROM dba_segments WHERE tablespace_name = 'USERS' ORDER BY bytes DESC FETCH FIRST 10 ROWS ONLY;
// el error común
Confiar en AUTOEXTEND ON sin límite parece cómodo hasta que un proceso descontrolado llena el disco entero y afecta a toda la instancia. Fija siempre un MAXSIZE.
// cuándo conviene un experto
Si te quedas sin espacio de forma recurrente o no tienes alertas de crecimiento, conviene automatizar el monitoreo. En dba.mx configuramos monitoreo proactivo con techo cerrado.
Agenda un Escaneo — desde USD $550Esta guía es orientativa y usa comandos de referencia. En producción, adapta a tu versión y prueba en un ambiente seguro primero.