Oracle: Trucos para DBA I
PARÁMETROS Y ESTADO DE LA BASE DE DATOS
INFORMACIÓN INSTANCIA
Información del estado de una instancia de base de datos: estado, versión, nombre, cuando se levanto, el nombre de la máquina, …
SELECT * FROM v$instance;
NOMBRE DE LA BASE DE DATOS
A veces no sabemos donde estamos conectados, una forma es localizar el nombre de la base de datos
SELECT value FROM v$system_parameter WHERE name = 'db_name';
PARÁMETROS DE LA BASE DE DATOS
Vista que muestra los parámetros generales de Oracle:
SELECT * FROM v$system_parameter;
o también
SHOW PARAMETERS valor_a_buscar
PRODUCTOS ORACLE INSTALADOS Y LA VERSIÓN
SELECT * FROM product_component_version;
OBTENER LA IP DEL SERVIDOR DE LA BASE DE DATOS ORACLE DATABASE
SELECT utl_inaddr.get_host_address IP FROM DUAL;
UBICACIÓN DE FICHEROS
LOCALIZAR UBICACIÓN Y NOMBRE DEL FICHERO SPFILE
Como el fichero de parámetros puede haberse cambiado de lugar, se puede localizar de la siguiente manera
SELECT value FROM v$system_parameter WHERE name = 'spfile';
LOCALIZAR UBICACIÓN Y NOMBRE DE LOS FICHEROS DE CONTROL
Como el fichero de parámetros puede haberse cambiado de lugar, se puede localizar de la siguiente manera
Ubicación y número de ficheros de control: SELECT value FROM v$system_parameter WHERE name = 'control_files';
TODOS LOS FICHEROS DE DATOS Y SU UBICACIÓN
SELECT * FROM V$DATAFILE;
FICHEROS TEMPORALES
SELECT * FROM V$TEMPFILE;
FICHEROS DE REDO LOG
SELECT member FROM v$logfile;
FICHEROS DE ARCHIVE LOG
SHOW parameters archive_dest
VOLUMETRÍA
ESPACIO UTILIZADO POR LOS TABLESPACES
Consulta SQL para el DBA de Oracle que muestra los tablespaces, el espacio utilizado, el espacio libre y los ficheros de datos de los mismos
SELECT t.tablespace_name "Tablespace",
t.status "Estado",
ROUND (MAX (d.bytes) / 1024 / 1024, 2) "MB Tamaño",
ROUND ((MAX (d.bytes) / 1024 / 1024)
- (SUM (DECODE (f.bytes, NULL, 0, f.bytes)) / 1024 / 1024),
2) "MB Usados",
ROUND (SUM (DECODE (f.bytes, NULL, 0, f.bytes)
) / 1024 / 1024, 2) "MB Libres",
t.pct_increase "% incremento",
SUBSTR (d.file_name, 1, 80) "Fichero de datos"
FROM DBA_FREE_SPACE f, DBA_DATA_FILES d, DBA_TABLESPACES t
WHERE t.tablespace_name = d.tablespace_name
AND f.tablespace_name(+) = d.tablespace_name
AND f.file_id(+) = d.file_id
GROUP BY t.tablespace_name,
d.file_name,
t.pct_increase,
t.status
ORDER BY 1, 3 DESC;
TAMAÑO OCUPADO POR LA BASE DE DATOS
SELECT SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS;
TAMAÑO DE LOS FICHEROS DE DATOS DE LA BASE DE DATOS
SELECT SUM(bytes)/1024/1024 MB FROM dba_data_files;
TAMAÑO OCUPADO POR UNA TABLA CONCRETA SIN INCLUIR LOS ÍNDICES DE LA MISMA
SELECT SUM(bytes)/1024/1024 MB FROM user_segments WHERE segment_type='TABLE' AND segment_name='NOMBRETABLA';
TAMAÑO OCUPADO POR UNA TABLA CONCRETA INCLUYENDO LOS ÍNDICES DE LA MISMA
SELECT SUM(bytes)/1024/1024 Table_Allocation_MB
FROM user_segments
WHERE segment_type in ('TABLE','INDEX')
AND(segment_name='NOMBRETABLA'
OR segment_name IN (SELECT index_name
FROM user_indexes
WHERE table_name='NOMBRETABLA'));
TAMAÑO OCUPADO POR UNA COLUMNA DE UNA TABLA
SELECT SUM(vsize('Nombre_Columna'))/1024/1024 MB
FROM Nombre_Tabla;
ESPACIO OCUPADO POR USUARIO
SELECT owner, SUM(BYTES)/1024/1024 FROM DBA_EXTENTS MB GROUP BY owner;
ESPACIO OCUPADO POR LOS DIFERENTES SEGMENTOS (TABLAS, ÍNDICES, UNDO, ROLLBACK, CLUSTER, …)
SELECT SEGMENT_TYPE, SUM(BYTES)/1024/1024 FROM DBA_EXTENTS MB GROUP BY SEGMENT_TYPE;
OCUPACIÓN DE TODOS LOS OBJETOS DE LA BASE DE DATOS
Espacio ocupado por todos los objetos de la base de datos, muestra primero los objetos que más ocupan
SELECT SEGMENT_NAME,
SUM(BYTES)/1024/1024
FROM DBA_EXTENTS MB
GROUP BY SEGMENT_NAME
ORDER BY 2 DESC;
OBJETOS DE LA BASE DE DATOS
PROPIETARIOS DE OBJETOS Y NÚMERO DE OBJETOS POR PROPIETARIO
SELECT owner,
COUNT(owner) Numero
FROM dba_objects
GROUP BY owner
ORDER BY Numero DESC;
MUESTRA LOS DISPARADORES (TRIGGERS) DE LA BASE DE DATOS ORACLE DATABASE
SELECT * FROM ALL_TRIGGERS;
REGLAS DE INTEGRIDAD Y COLUMNA A LA QUE AFECTAN
SELECT constraint_name,
column_name
FROM sys.all_cons_columns;
TABLAS DE LAS QUE ES PROPIETARIO UN USUARIO DETERMINADO
SELECT table_owner, table_name FROM sys.all_synonyms WHERE table_owner = 'SCOTT';
INFORMACIÓN TABLESPACES
SELECT * FROM V$TABLESPACE;
BUSQUEDAS DE CONSTRAINTS DESHABILITADAS
SELECT TABLE_NAME,
CONSTRAINT_NAME,
STATUS
FROM ALL_CONSTRAINTS
WHERE OWNER <> 'SIEBEL'
AND STATUS = 'DISABLED';
TABLAS CON MÁS DE UN NÚMERO DETERMINADO DE ÍNDICES
SELECT TABLE_NAME,
COUNT(*)
FROM ALL_INDEXES
WHERE OWNER='SIEBEL'
GROUP BY TABLE_NAME
HAVING COUNT(*) > 5
ORDER BY 2 DESC;
TABLAS SIN PRÍMARY KEY
SELECT TABLE_NAME
FROM ALL_TABLES T
WHERE OWNER = 'SIEBEL'
AND NOT EXISTS (SELECT 1
FROM ALL_CONSTRAINTS C
WHERE T.OWNER = C.OWNER
AND CONSTRAINT_TYPE = 'P');
OBJETOS NO VÁLIDOS (PAQUETES, PROCEDIMIENTOS, FUNCIONES, TRIGGERS, VISTAS,…)
SELECT OBJECT_NAME, OBJECT_TYPE FROM all_objects WHERE OWNER = 'SIEBEL' AND STATUS <> 'VALID';
OBJETOS CREADOS EN LA ÚLTIMA HORA
SELECT OBJECT_NAME,
OBJECT_TYPE,
LAST_DDL_TIME,
CREATED,
TIMESTAMP,
STATUS
FROM all_objects
WHERE OWNER = 'SIEBEL'
AND CREATED > sysdate - 1/24;
OBJETOS MODIFICADOS EN LA ÚLTIMA HORA
SELECT OBJECT_NAME,
OBJECT_TYPE,
LAST_DDL_TIME,
CREATED,
TIMESTAMP,
STATUS
FROM all_objects
WHERE OWNER = 'SIEBEL'
AND TIMESTAMP > sysdate - 1;
INFORMACIÓN DE COLUMNAS DE UNA TABLA
SELECT TABLE_NAME,
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH,
DATA_PRECISION,
NULLABLE
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'SIEBEL'
AND TABLE_NAME = 'MI_TABLA'
ORDER BY TABLE_NAME, COLUMN_ID;
OTROS ENLACES DE INTERES
Comments are closed.

