Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Oracle Admon PDF
Oracle Admon PDF
1. Servidor Oracle
El servidor Oracle es un sistema para manejo de bases de datos objeto-relacionales que
proporciona una aproximacin abierta e integrada para el manejo de informacin.
PL/SQL Es una extensin del lenguaje que ofrece la estructura procedimental de bloques
combinado con las capacidades no procedimentales de SQL.
Las herramientas de desarrollo de 4 generacin, presentan la interface con los datos, estas
herramientas son parte de la estrategia de arquitectura abierta de Oracle. Estas herramientas
soportan bases de datos Oracle y no Oracle (Como muchas herramientas lo hacen).
3. Proceso usuario
Corre en la mquina cliente
Se crea cuando se invoca una herramienta o aplicacin
Corre la herramienta o aplicacin (SQL*PLUS, Server Manager, OEM,
Developer/2000)
Genera llamados al Servidor Oracle
4. Proceso Servidor
Corre en la mquina servidor (host)
Atiende a un slo proceso usuario (servidor dedicado)
Procesa los llamados generados por el cliente
Devuelve resultados al cliente
5. Instancia Oracle
Trmino Significado
Database Coleccin lgica de datos almacenados en tablespaces.
File Archivo de datos fsicos ubicados en un solo tablespace.
Tablespace Repositorio lgico para agrupar datos fisicamente.
Aparte de los database files, el servidor Oracle usa otros archivos. Algunos de los
cuales son :
Parameter file
Password file
Archived redo log files
8. Procesamiento de un query
9. El Shared Pool
No compartida y no escribible.
Contiene :
Sort area
Informacin de la sesin
Estado de los cursores
Espacio de pila
El proceso Database Writer (DBWR) escribe los buffers dirty desde el database buffer
cache a los data files. Asegura que est disponible un nmero suficiente de free buffers
en el database buffer cache.
El proceso Log Writer (LGWR) es un proceso de background que escribe entradas desde
el redo log buffer a los redo log files.
1. Ejemplos
Herramienta Descripcin
Server Manager Usada para subir, bajar o recuperar una base
de datos
Oracle Enterprise Manager Herramienta grfica para administrar,
monitorear, y afinar mltiples bases de datos
SQL*Loader Utilidad para cargar datos desde archivos
externos a tablas Oracle
Export o Import Utilidad para exportar/importar datos en
formato Oracle
Password File Utilidad para crear el archivo de password
de la base de datos
En Unix svrmgrl
En NT svrmgr30
1. Vistazo
Una base de datos Oracle no est disponible a los usuarios hasta que el administrador de
la base de datos haya iniciado la instancia y abierto la base de datos.
Creados automticamente
Privilegiados con el role DBA
3. SYS Y SYSTEM
SYS
Password : change_on_install
Oracle Administracin de Bases de Datos Pgina 9
Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.
Dueo del diccionario de datos de la base de datos
SYSTEM
Password : manager
Dueo de tablas internas adicionales usadas por herramientas Oracle
CONNECT / AS SYSDBA
CONNECT / AS SYSOPER
6. El archivo de parmetros
BACKGROUND_DUMP_DEST
COMPATIBLE
CONTROL_FILES
DB_BLOCK_BUFFERS
DB_NAME
SHARED_POOL_SIZE
USER_DUMP_DEST
IFILE
LOG_BUFFER
MAX_DUMP_FILE_SIZE
PROCESSES
SQL_TRACE
Oracle Administracin de Bases de Datos Pgina 11
Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.
TIMED_STATISTICS
STARTUP
NOMOUNT
MOUNT
OPEN
SHUTDOWN
NORMAL
TRANSACTIONAL
IMMEDIATE
ABORT
V$PARAMETER
V$SGA
V$OPTION
V$PROCESS
V$SESSION
V$VERSION
V$INSTANCE
V$CONTROLFILE
1. Prerrequisitos
8. Subir la instancia
1. Conectarse como SYSDBA
2. Subir la instancia en estado NOMOUNT
SVRMGR> startup nomount pfile=initu16.ora
10. TROUBLESHOOTING
La creacin de la Base de Datos falla si:
* Hay errores de sintaxis en el script SQL
* Los archivos a ser creados ya existen.
* Errores por permisos en el sistema operativo o por espacio insuficiente en disco
DBA_TABLES
DBA_OBJECTS
DBA_LOBS
Oracle Administracin de Bases de Datos Pgina 18
Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.
DBA_TAB_COLUMNS
DBA_CONSTRAINTS
DBA_USERS
DBA_SYS_PRIVS
DBA_ROLES
DBA_EXTENTS
DBA_FREE_SPACE
DBA_SEGMENTS
DBA_ROLLBACK_SEGS
DBA_DATA_FILES
DBA_TABLESPACES
DBA_AUDIT_TRAIL
DBA_AUDIT_OBJECTS
DBA_AUDIT_OBJ_OPTS
6. Scripts Administrativos
Existen las siguientes convenciones para los scripts sql:
Cat*.sql Informacin del catlogo y del diccionario de datos
dbms*.sql Especificaciones de paquetes de la base de datos
prvt*.plb Cdigo encriptado de la base de datos
utl*.sql Vistas y tablas para utilidades
Comando DESCRIBE
Ejemplo: DESCRIBE dbms_session.set_role
12. Trobleshooting
El status de los objetos puede ser INVALID:
- Si se ejecutan comandos DDL sobre objetos referenciados
- Despus de crear los objetos con la utilidad IMPORT
LGWR
Oracle registra secuencialmente todas las modificaciones hechas a la Base de Datos en el
redo log buffer. Las entradas se escriben a uno de los online redo log groups, llamado el
current, bajo las siguientes situaciones:
Log Switches
LGWR escribe secuencialmente a los online redo log files un log switch, es el evento
durante el cual
LGWR finaliza la escritura a un online redo log group y empieza a escribir otro.
Checkpoints
Durante un checkpoint:
Todos los buffer dirty de la Base de Datos se esriben a los data files por DBWR
El proceso CKPT actualiza los encabezados de todos los data files y control files
para reflejar que ha finalizado exitosamente.
Un checkpoint ocurre en las siguientes situaciones:
Cada log switch
Cuando una instancia se baja con la opcin NORMAL O IMMEDIATE
Parmetros LOG_CHECKPOINT_INTERVAL y LOG_CHECKPOINT_TIMEOUT.
1. Vistazo
La arquitectura de la Base de Datos incluye las estructuras lgicas y fsicas que la
conforman.
La estructura fsica consiste de control files, online redo log files y data files.
La estructura lgica incluye tablespaces, segmentos, extents y data blocks.
4. Creacin de tablespaces
Comando CREATE TABLESPACE
Ejemplo: CREATE TABLESPACE app_data
DATAFILE /DISK4/app01.dbf SIZE 100M,
/DISK3/app02.dbf SIZE 100M
5. Parmetros de almacenamiento
INITIAL
NEXT
MAXEXTENTS
MINEXTENTS
PCTINCREASE
6. Tablespace temporal
Usado por operaciones de ordenamiento (sort)
No puede contener objetos permanentes
Ejemplo:
CREATE TABLESPACE sort
DATAFILE /DISK2/sort01.dbf SIZE 50M
DEFAULT STDRAGE (INITIAL 2M NEXT 2M
MAXEXTENTS 500 PCTINCREASE 0)
TEMPORARY;
17. Recomendaciones
Usar varios tablespaces
Especificar los parmetros de almacenamiento
Asignar espacio en los tablespace a los usuarios
2. Tipos de segmentos
Tabla: Es el medio ms comn de almacenar datos dentro de una base de datos. Los
datos dentro de una tabla no se almacenan con un orden particular.
Cluster: Las filas en un cluster se almacenan basadas en los valores de ciertas columnas.
Un cluster puede contener una o ms tablas y es un tipo de segmento de datos.
Indice: Todas las entradas para un ndice particular se almacenan dentro de un segmento
ndice. Si una tabla tiene tres ndices, se usan tres segmentos de ndices. El propsito de
este ndice es buscar la ubicacin de las filas en la tabla basado en un valor especfico.
Rollback: Es usado por una transaccin que est efectuando cambios en una base de
datos. Antes de modificar los bloques de datos o de ndices, el valor anterior se
almacena en el segmento de rollback. Esto permite que el usuario pueda deshacer los
cambios realizados.
Temporal: Usando una instruccin SQL requiere de un ordenamiento que requiere mucho
espacio, se crean en disco segmentos temporales. Ejemplos: CREATE INDEX,
SELECT DISTINCT, y SELECT GROUP BY.
LOB: Permite almacenar documentos de texto, imgenes, o videos.
6. Bloque Oracle
Unidad mnima de I/O
Consiste de uno o ms bloques del Sistema Operativo
Establecido por DB_BLOCK_SIZE
9. Espacio libre
SELECT tablespace_name, count (*), max (blocks), sum (blocks)
FROM dba_free_space
GROUP BY tablespace_name;
INITIAL
NEXT
MAXEXTENTS
MINEXTENTS
PCTINCREASE
OPTIMAL
FREELISTS
PCTFREE
PCTUSED
INITRANS
MAXTRANS
Parte Descripcin
Header Contiene la informacin general del bloque, como la direccin y el tipo de segmento.
Free Space Consiste en un conjunto de bytes en el bloque, disponibles para realizar inserciones o
actualizaciones de filas.
El control del uso del espacio libre para inserciones, actualizaciones y borrado de filas en
bloques de la base de datos, se especifica en valores apropiados en los siguientes
parmetros.
PCTFREE
PCTUSED
INITRANS
MAXTRANS
PCTFREE y PCTUSED poseen el control del uso de espacio libre para inserciones o
actualizaciones de filas en bloques de la base de datos. Ambos parmetros aplican a tablas,
clusters, y vistas usando los comandos CREATE y ALTER. PCTFREE puede ser
especificado para indices.
En el caso 1, se pueden insertar filas en el bloque ya que la utilizacin del mismo est por
debajo del 80%.
En el caso 2, no se pueden insertar filas, el espacio sobrante es utilizado en caso de
modificaciones, ejemplo cuando una columna tiene un valor nulo y cambia de valor.
En el caso 3, si se borran filas o se reduce el espacio ocupado con modificaciones, la
utilizacin del bloque puede estar por debajo del 80%, sin embargo el bloque no es usado
para inserciones hasta que la utilizacin del bloque caiga por debajo de PCTUSED.
En el caso 4, cuando el nivel baja de PCTUSED el bloque queda disponible para insercin.
Incrementa los costos de proceso porque los bloques son liberados frecuentemente.
Mejora el uso de espacio ya que los bloques se utilizan con mas capacidad.
INITRANS
EXTENTS
Cada segmento en una base de datos es creado con el menor nmero de extents para
almacenar los datos.
Parmetro Descripcin
INITIAL Tamao en bytes del primer extent localizado en el segmento, por
defecto equivale a cinco data blocks.
NEXT Tamao en bytes de los extents siguientes, por defecto equivale a
cinco data blocks.
MAXEXTENTS Nmero total de extents que pueden ser localizados en el
segmento, el tamao mximo depende del tamao de los bloques
de Oracle, por ejemplo 121 para bloques de 2K.
MINEXTENTS Nmero total de extents que pueden ser localizados al momento de
ser creado el segmento, por defecto es 1 excepto para los
segmentos de rollback que requieren 2.
PCTINCREASE Porcentaje en el cual se puede incrementar los extents siguientes.
OPTIMAL Especifica el tamao optimo en bytes para los segmentos de
rollback.
FREELIST Nmero de listas de bloques libres para insercin en na tabla. Por
defecto es uno.
En la grfica anterior se presentan las tablas de las cuales se saca la informacin necesaria
para presentar en la aplicacin.
1. Vistazo
Un segmento de rollback se usa para salvar el valor anterior cuando un proceso est
efectuando modificaciones a los datos en una base de datos, almacena informacin como
el cdigo del archivo, cdigo del bloque y tambin datos como existan antes de ser
modificados.
El encabezado de un segmento de rollback contiene una tabla donde se almacena
informacin acerca de las transacciones que est usando el segmento.
Una transaccin puede usar nicamente un segmento de rollback para almacenar todos
los registros de rollback. Muchas transacciones pueden escribir a un segmento de
rollback.
La auditora no puede registrar los valores de las columnas que son cambiados, si requiere
almacenar los datos anteriores de las columnas que son modificadas, se debe usar auditora
de aplicaciones. La auditora de aplicaciones se realiza mediante cdigo en la herramienta
cliente, procedimientos almacenados, o triggers de la base de datos.
Para verificar la auditora bsica sobre conexiones, se puede examinar el visor de sucesos
de Windows NT, en la parte de Registro de aplicacin.
Codigo
Nombre
Direccion
Telfono
Por alguna razn se desea conservar la historia de los valores contenidos en esta tabla, en
caso de que se cambie la direccin o el telfono del empleado, se desea mantener un registro
de los datos anteriores. Para esto se puede crear un trigger a la tabla que posea el siguiente
cdigo.
Con el trigger anterior, cada vez que se inserte, modifique o borre un registro de la tabla
empleados, se guardar la informacin en la tabla aud_empleados (La tabla aud_empleados
debe ser creada por el administrador o alguna persona encargada de la auditora).
El siguiente paso es especificar las opciones de auditora usando el comando AUDIT, con
este comando se indica cuales comandos, usuarios, objetos o privilegios auditar. Se puede
indicar si un registro de auditora debe ser generado por cada ocurrencia o una vez por
sesin. Si una opcin de auditora no es necesaria, se puede desabilitar la opcin con el
comando NOAUDIT.
6. Ejecucin de instrucciones
Cuando un usuario ejecuta una instruccin SQL o PL/SQL, el servidor procede a examinar
las opciones de auditora, para determinar si la ejecucin del mismo debe generar algn
registro de auditora. Si el comando SQL se encuentra dentro de un programa PL/SQL, es
necesario que sea ejecutado dicho comando para que se registre la auditora, el bloque de
instrucciones debe pasar por dicho comando y puede llegar a generar varios registros de
auditora.
Sintaxis
AUDIT_TRAIL = valor
Auditar instrucciones
AUDIT user;
Auditar privilegios
AUDIT select any table BY scott BY ACCESS;
Auditar objetos
AUDIT LOCK ON scott.emp BY ACCESS WHENEVER SUCCESFUL;
Se utiliza el comando AUDIT para especificar las opciones de auditora. Estos registros de
auditora nunca son generados por sesiones del usuario SYS o conexiones como
INTERNAL.
Instrucciones de auditora
Auditora de privilegios
La auditora de privilegios se usa para verificar el uso de los privilegios del sistema. Por
ejemplo siempre que el usuario Scott realice un SELECT sobre cualquier tabla, se genere un
registro de auditora, cuando el usuario realiza una consulta sobre una tabla en la cual no
tiene privilegios no se genera el registro de auditora.
AUDIT {statement|system_priv}
[,{statement|system_priv}]....
[BY user [, user]...]
[BY {SESSION|ACCESS} ]
[WHENEVER [NOT] SUCCESSFUL]
Auditora de objetos
Donde:
ALTER X X X
AUDIT X X X X X
COMMENT X X X
DELETE X X X
EXECUTE X
INDEX X X
INSERT X X X
LOCK X X X
READ
RENAME X X X X
SELECT X X X X
UPDATE X X X
La pista de auditora:
Almacena los registros generados por instrucciones, privilegios y objetos auditados.
El registro de auditora est almacenado en la tabla del diccionario de datos SYS.AUD$
o en el registro de auditora del sistema operativo.
Cada registro en la pista de auditora incluye:
El usuario quien ejecut la instruccin
El comando emitido
Cualquier privilegio de objeto usado
Los objetos referenciados en la instruccin
La fecha y hora de ejecucin de la instruccin
Los registros de auditora pueden ser almacenados en una tabla del diccionario de datos,
llamada la base de datos de pistas de auditora (Database Audit Trail) o en la pista de
auditora del sistema operativo.
Recomendacin mover la pista de auditora fuera del tablespace system, ya que la pista de
auditora puede ser muy extensa.
Para que una aplicacin resuelva las referencias del esquema de objetos (Un proceso
llamado name resolution), Oracle utilizar una jerarqua de nombres de objetos. Por ejemplo,
en una base de datos sola, se garantiza que un esquema tiene un nombre nico, y dentro de
este cada objeto tiene un nombre nico, de esta manera se garantiza la unicidad de un nombre
de esquema-objeto.
En una base de datos distribuida, un esquema puede encontrarse repetido en dos bases de
datos diferentes, o puede suceder con un nombre de objeto, la solucin es agregando a la
jerarqua de nombres el nombre global de la base de datos.
Base de datos distribuida: Es un conjunto de bases de datos que pueden estar almacenadas en
diferentes computadores y se comportan en la aplicacin como una sola base de datos.
Oracle Administracin de Bases de Datos Pgina 56
Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.
Proceso distribuido: Ocurre cuando una aplicacin distribuye tareas en diferentes
computadores en una red.
Por ejemplo, basado en la grfica anterior, se va a crear un database link a la base remota
SALES.US.AMERICAS.ACME_AUTO.COM
Despus de la creacin del database link, las aplicaciones conectadas a la base de datos
local pueden acceder a la informacin de la base de datos remota, de la siguiente manera:
Para realizar la prctica se instal otra base de datos en la misma mquina, para poder
realizar el database link, la base de datos fue creada mediante la utilizacin del asistente
para la creacin de bases de datos, de esta forma quedaron instaladas en la mquina las
bases de datos DBCAREM y DBCAREM2, para crear el database link es necesario que el
listener conozca la ruta de las dos bases de datos, por encontrarse en la misma mquina no
fue necesario realizar cambios.
Al crear el database link no present ningn inconveniente, pero al ejecutar una instruccin
donde se utilizaba si, se presentaba un error, el cul significa que no puede localizar el
nombre de la base de datos.
Global_names = true
Estas mismas lneas se encuentras en el archivo de configuracin de las bases de datos sobre
Unix y no impedian el funcionamiento del database link, pero en el caso de NT no permitian
que este funcionara.
Para soportar que la aplicacin acceda a los datos de bases de datos diferentes en un
ambiente distribuido, los administradores deben crear todos los database link necesarios,
existen diferentes tipos de database link como son:
PRIVATE
PUBLIC
GLOBAL DATABASE LINK
Es el caso contrario donde todos los usuarios pueden acceder a los datos y objetos en la
correspondiente base de datos remota.
Cuando una red ORACLE utiliza Oracle names, los nombres de los servidores
automticamente crean y manejan global database links por cada base de datos Oracle en la
red, de esta forma todos los usuarios y subprogramas en una base de datos pueden acceder a
la informacin y objetos de las dems bases de datos en la red.
Un private database link es ms seguro que un public database link y que un global database
link, ya que el dueo es el nico que puede acceder a la base de datos distribuida.
Cuando se requiere que muchos usuarios accedan a la informacin de otra base de datos, lo
ms recomendable es la creacin de un public database link.
Un database link define un camino de comunicacin entre dos bases de datos. Cuando una
aplicacin usa un database link para acceder a la base de datos remota, Oracle establece una
sesin en la base de datos remota.
Cuando se crea el database link pblico o privado, se puede establecer el esquema de
trabajo en el base de datos remota, mediante la asignacin del usuario con el cual va a
ingresar a la base de datos remota.
Ejemplos