Admin BD Oracle
Enviado por mac89 • 7 de Abril de 2014 • 1.375 Palabras (6 Páginas) • 249 Visitas
Os mostramos algunas consultas SQL muy útiles para el administrador de Oracle Database: estado de la base de datos Oracle, parámetros generales, ficheros de control, conexiones actuales a Oracle, nombre del ejecutable que se utiliza, nombre del usuario, diccionario de datos (vistas y tablas), IP del servidor, tamaño de la base de datos, versión de Oracle, ...
Definición SQL.
Consultas SQL útiles para obtener información sobre Oracle Database.
Artículos relacionados.
Créditos.
Definición SQL
SQL (Lenguaje de consulta estructurado) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar, de una forma relativamente sencilla, información de interés de una base de datos, así como también hacer cambios sobre ella. Es un lenguaje de cuarta generación (4GL).
Consultas SQL útiles para obtener información sobre Oracle Database
Vista que muestra el estado de la base de datos:
select * from v$instance
Consulta que muestra si la base de datos está abierta:
select status from v$instance
Vista que muestra los parámetros generales de Oracle:
select * from v$system_parameter
Versión de Oracle:
select value
from v$system_parameter
where name = 'compatible'
Ubicación y nombre del fichero spfile:
select value
from v$system_parameter
where name = 'spfile'
Ubicación y número de ficheros de control:
select value
from v$system_parameter
where name = 'control_files'
Nombre de la base de datos
select value
from v$system_parameter
where name = 'db_name'
Vista que muestra las conexiones actuales a Oracle:
select osuser, username, machine, program
from v$session
order by osuser
Vista que muestra el número de conexiones actuales a Oracle agrupado por aplicación que realiza la conexión
select program Aplicacion, count(program) Numero_Sesiones
from v$session
group by program
order by Numero_Sesiones desc
Vista que muestra los usuarios de Oracle conectados y el número de sesiones por usuario
select username Usuario_Oracle, count(username) Numero_Sesiones
from v$session
group by username
order by Numero_Sesiones desc
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
Diccionario de datos (incluye todas las vistas y tablas de la Base de Datos):
select * from dictionary
select table_name from dictionary
Muestra los datos de una tabla especificada (en este caso todas las tablas que lleven la cadena "EMPLO"):
select *
from ALL_ALL_TABLES
where upper(table_name) like '%EMPLO%'
Muestra los disparadores (triggers) de la base de datos Oracle Database:
select *
from ALL_TRIGGERS
Tablas propiedad del usuario actual:
select * from user_tables
Todos los objetos propiedad del usuario conectado a Oracle:
select * from user_catalog
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
Productos Oracle instalados y la versión:
select * from product_component_version
Roles y privilegios por roles:
select * from role_sys_privs
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, en este caso "HR":
SELECT table_owner, table_name
from sys.all_synonyms
where table_owner like 'HR'
Otra forma más efectiva (tablas de las que es propietario un usuario):
SELECT DISTINCT TABLE_NAME
FROM ALL_ALL_TABLES
WHERE OWNER LIKE 'HR'
Parámetros de Oracle, valor actual y su descripción:
SELECT v.name, v.value value, decode(ISSYS_MODIFIABLE, 'DEFERRED',
'TRUE', 'FALSE') ISSYS_MODIFIABLE, decode(v.isDefault, 'TRUE', 'YES',
'FALSE', 'NO') "DEFAULT", DECODE(ISSES_MODIFIABLE, 'IMMEDIATE',
'YES','FALSE', 'NO', 'DEFERRED', 'NO', 'YES') SES_MODIFIABLE,
DECODE(ISSYS_MODIFIABLE, 'IMMEDIATE', 'YES', 'FALSE', 'NO',
'DEFERRED', 'YES','YES') SYS_MODIFIABLE , v.description
FROM V$PARAMETER v
WHERE name not like 'nls%' ORDER BY 1
Usuarios de Oracle y todos sus datos (fecha
...