Está en la página 1de 18

Arquitectura de la Base de Datos Oracle

OBJETIVOS
1.2.3.4.LISTAR LOS PRINCIPALES COMPONENTES DE LA BASE DE DATOS ORACLE EXPLICAR LAS ESTRUCTURAS DE MEMORIA DESCRIBIR LOS PROCESOS DE BACKGROUND CORRELACIONAR LAS ESTRUCTURAS FISICAS Y LOGICAS

Captulo 1: Explorando la

UNA BASE DE DATOS ES UNA COLECCIN DE DATOS TRATADA COMO UNA UNDAD. EL OBJETIVO PRINCIPAL DE UNA BASE DE DATOS ES ALMACENAR Y RECUPERAR INFORMACION. LA BASE DE DATOS, DE FORMA FIABLE, MANEJA Y ADMINISTRA UN GRAN MONTO DE DATOS EN UN MEDIOAMBIENTE MULTIUSUARIO, ES DECIR, SE PUEDEN TENER USUARIOS CONCURRENTES. DE IGUAL FORMA PREVIENE ACCESOS NO AUTORIZADOS Y OTORGA SOLUCIONES EFICIENTES PARA LA RECUPERACION DE FALLAS

UN USUARIO DE BASE DE DATOS PUEDE CONECTARSE AL ORACLE SERVER EN UNA DE TRES FORMAS: 1. EL USUARIO SE PUEDE LOGEAR DESDE EL SISTEMA OPERATIVO ACCESANDO A LA INSTANCIA DESDE LA EJECUCION DE UNA APLICACIN O UNA HERRAMIENTA QUE TENGA ACCESO A LA MISMA INSTANCIA 2. AL MOMENTO DE INICIAR UNA APLICACIN O UNA HERRAMIENTA EN FORMA LOCAL Y CONECTARSE A TRAVES DE LA RED A LA COMPUTADORA QUE ESTA CORRIENDO LA BASE DE DATOS. A ESTA CONFIGURACION SE LE LLAMA CLIENTE SERVIDOR.

a. LA ARQUITECTURA CLIENTE SERVIDOR TIENE DOS PARTES: i. UN FRONT END LLAMADO CLIENTE Y ii. UN BACK END LLAMADO SERVIDOR CONECTADOS POR MEDIO DE LA RED LA CUAL SE UTILIZA PARA REALIZAR LA COMUNICACIN ENTRE AMBOS b. EL CLIENTE CONTIENE UNA APLICACIN DE BASE DE DATOS LA CUAL INICIA UN REQUERIMIENTO DE OPERACIN. ESTE REQUERIMIENTO PROCESA Y PRESENTA DATOS QUE VIENE DEL SERVIDOR c. EL SERVIDOR EJECUTA EL SOFTWARE DE LA BASE DE DATOS Y MANEJA LAS FUNCIONES REQUERIDAS PARA ADMINSTRAR LA CONCURRENCIA DE USUARIOS Y COMPARTE EL ACCESO A LOS DATOS. EL SERVIDOR RECIBE Y PROCESA LOS REQUERIMIENTOS LANZADOS DESDE EL CLIENTE d. AMBOS EQUIPOS PUEDEN SER OPTIMIZADOS PARA ESTOS TRABAJOS, POR EJEMPLO: EL CLIENTE NO NECESITA UNA GRAN CAPACIDAD DE DISCO O TENER UN ALTO DESEMPEO GRAFICO. EL SERVIDOR PUEDE TENER UNA GRAN CAPACIDAD EN DISCO Y PROCESADORES MUY VELOCES. 3. EL USUARIO PUEDE ACCESAR A LA BASE DE DATOS A TRAVES DE UNA HERRAMIENTA TAL COMO UN BROWSER. ESTAS ARQUITECTURAS DISPONEN DEL APPLICATION SERVER PARA HACER LO SIGUIENTE: VALIDAN LAS CREDENCIALES DEL CLEINTE (TAL COMO EL BROWSER) REALIZAN LA CONECCION AL ORACLE SERVER DESARROLLAN LOS REQUERIMIENTOS DE LAS OPERACIONES DEL CLIENTE

UNA BASE DE DATOS CONSISTE DE UNA INSTANCIA Y ESTA ASOCIADA A UNA BASE DE DATOS EN ORACLE, EL TERMINO BASE DE DATOS SE REFIERE AL ALMACENAMIENTO FSICO DE INFORMACION. EL TERMINO INSTANCIA SE REFIERE AL SOFTWARE QUE SE EJECUTA EN EL SERVIDOR EL CUAL DA ACCESO A LA INFORMACION EN LA BASE DE DATOS. LA INSTANCIA CORRE SOBRE EL CLIENTE O SOBRE EL SERVIDOR. LA BASES DE DATOS ESTA ALMACENADA EN EL DISCO DEL SERVIDOR LA INSTANCIA CONSISTE DE ESTRUCTURAS DE MEMORIA Y PROCESOS DE BACKGROUND. CADA VEZ QUE LA INSTANCIA ES INICIADA, UNA AREA DE MEMORIA COMPARTIDA LLAMADA SYSTEM GLOBAL AREA (SGA) ES ASIGNADA Y LOS PROCESOS DE BACKGROUND SON INICIADOS. LA BASE DE DATOS CONSISTE DE ESTRUCTURAS FSICAS Y LOGICAS. LA CAPA FISICA SON LOS ARCHIVOS QUE RESIDEN EN EL DISCO. ESTOS PUEDEN SER DE TRES TIPOS:

UNO O MAS DATAFILES o LOS DATAFILES ALMACENAN TODA LA INFORMACION INGRESADA A LA BASE DE DATOS. EL NUMERO MAXIMO DE DATAFILES ESTA DENOTADO EN EL PARAMETRO MAXDATAFILES DOS O MAS REDOLOGS FILES o LOS ARCHIVOS REDOLOG SE UTILIZAN PARA HACER RECUPERACIONES DE TRANSACCIONES O RECUPERACION POR FALTA DE SUMINISTRO ELECTRICO, ERRORES DE DISCO O DEMAS CAUSAS UNO O MAS CONTROL FILES o CONTIENEN INFORMACION QUE SE UTILIZA CUANDO SE LEVANTA UNA INSTANCIA. TAL COMO LA INFORMACION DE DONDE SE ENCUENTRAN LOS DATAFILES Y LOS REDOLOG. ESTOS ARCHIVOS DEBEN DE ENCONTRARSE SIEMPRE PROTEGIDOS. LA CAPA LOGICA DE UNA BASE DE DATOS CONSISTE DE LOS SIGUIENTES ELEMENTOS: UNO O MAS TABLESPACES EL ESQUEMA DE LA BASE DE DATOS (SCHEMA), EL CUAL CONSISTE DE OBJETOS TALES COMO TABLAS, CLUSTERS, INDICES, VISTAS, PROCEDIMIENTOS ALMACENADOS, TRIGGERS, SECUENCIAS Y OTROS UNA BASE DE DATOS SE ENCUENTRA DIVIDIDA EN UNA O MAS PIEZAS LOGICAS LLAMADAS TABLESPACES, QUE SON UTILIZADOS PARA SEPARAR LA INFORMACION EN GRUPOS Y ASI SIMPLIFICAR LA ADMINISTRACION DE LOS DATOS EN TERMINOS SENCILLOS, UNA INSTANCIA ES UNA SERIE DE PROCESOS DEL SERVIDOR ORACLE QUE TIENE SU PROPIA AREA GLOBAL DE MEMORIA (SGA: SYSTEM GLOBAL AREA) Y UNA Y SOLO UNA BASE DE DATOS ASOCIADA A ELLOS

CONECCIONES Y SESIONES ESTAN MUTUAMENTE RELACIONADAS A LOS USER PROCESSES PERO SON MUY DIFERENTES EN MANEJO. UNA CONECCION ES UNA VIA DE COMUNICACIN ENTRE UN USER PROCESS Y UNA INSTANCIA DE BASE DE DATOS UNA SESION REPRESENTA EL ESTADO DE UN USUARIO CON RESPECTO A LA INSTANCIA DE LA BASE DE DATOS. POR EJEMPLO CUANDO UN USUARIO INICIA UNA SESIO DE SQL*PLUS EN EL CASO DE UNA CONECCION DEDICADA, LA SESION ES ATENDIDA POR UN PROCESO DEDICADO PERMANENTEMENTE VARIAS SESIONES PUEDEN SER CREADAS Y EXISTIR CUNCURRENTEMENTE POR UN SOLO USUARIO, INCLUSO CON EL MISMO NOMBRE. ESTO ES UN USUARIO CONECTADO A LA MISMA INSTANCIA VARIAS VECES

EL SIGUIENTE EJEMPLO DESCRIBE LAS OPERACIONES AL NIVEL MAS BASICO, EN ESTE EJEMPLO SE MUESTRA UNA CONFIGURACION ENTRE UN USUARIO Y EL SERVER PROCESS ESTAN CONECTADOS A TRAVES DE LA RED 1.- UNA INSTANCIA FUE INICIADA SOBRE UN NODO DONDE EL ORACLE SERVER ESTA INSTALADO. ESTE ES LLAMADO EL HOST O DATABASE SERVER 2.- UN USUARIO INICIA UNA APLICACIN. LA APLICACIN ESTABLECE UNA CONECCION AL SERVIDOR 3.- EL SERVIDOR CORRE UN LISTENER EL CUAL MANEJA APROPIADAMENTE LOS SERVICIOS DE ORACLE (ORACLE NET SERVICES) EL SERVIDOR DETECTA LOS REQUERIMIENTOS DE LA APLICACIONY CREA UN SERVER PROCESS DEDICADO AL USER PROCESS 4.- EL USUARIO CORRE UN DML Y COMITEA LA TRANSACCION 5.- EL SERVER PROCESS RECIBE LA SENTENCIA Y CHECA EL SHARED POOL (UN COMPONENTE DEL SGA) PARA VER SI SQL AREA CONTIENE UNA SENTENCIA IDENTICA. SI ENCUENTRA EL AREA, SERVER PROCESS VERIFICA LOS PRIVILEGIOS DEL USUARIO, LOS DATOS SOLICITADOS Y EL SQL AREA ES UTILIZADA PARA PROCESAR LA SENTENCIA. SI UN SHARED SQL AREA NO ES ENCONTRADA, UNA NUEVA SQL AREA ES ASIGNADA PARA LA SENTENCIA Y ESTA ULTIMA ES PARSEADA Y PROCESADA 6.- EL SERVER PROCESS RECUPERA LOS DATOS Y LOS VALORES NECESARIOS DESDE EL ACTUAL DATAFILE (TABLA), DESDE LOS VALORES ALMACENADOS EN EL SGA 7.-EL SERVER PROCESS MODIFICA LOS DATOS EN EL SGA POR QUE LA TRANSACCION FUE COMITEADA, EL PROCESO LOGWRITTER (LGWR) INMEDIATAMENTE REGISTRA LA TRANSACCION EN EL REDO LOG FILE. EL PROCESO DATABASE WRITTER (DBWR) ESCRIBE Y MODIFICA PERMANENTEMENTE LOS BLOQUES EN EL DISCO 8.- SI LA TRANSACCION ES CORRECTA, EL SERVER PROCESS ENVIA UN MENSAJE A TRAVES DE LA RED A LA APLICACIN. SI NO ES CORRECTO, UN MENSAJE DE ERROR ES TRANSMITIDO 9.- A LO LARGO DE TODO ESTE PROCEDIMIENTO, LOS PROCESOS EN SEGUNDO PLANO SE EJECUTAN. ADEMS, EL SERVIDOR DE BASE DE DATOS GESTIONA LAS TRANSACCIONES DE OTROS USUARIOS Y EVITA LA CONTENCIN ENTRE LAS TRANSACCIONES QUE SOLICITEN LOS MISMOS DATOS

DESPUES DE INICIAR UNA INSTANCIA, ESTA ES ASOCIADA CON UNA BASE DE DATOS ESPECIFICA. A ESTO SE LE LLAMA MONTAR UNA BASE DE DATOS. LA BASE DE ADTOS ENTONCES ESTAR ABIERTA, LO CUAL LA HACE ACCESIBLE A LOS USUARIOS QUE ESTE AUTORIZADOS UNA INSTANCIA UTILIZA ESTRUCTURAS DE MEMORIA Y PROCESOS PARA MANEJAR Y ACCESAR A LA BASE DE DATOS

LA BASE DE DATOS DE ORACLE CREA Y UTILIZA ESTRUCTURAS DE MEMORIA PARA VARIOS PROPOSITOS. EXISTEN DOS ESTRUCTURAS BSICAS EN UNA INSTANCIA: SYSTEM GLOBAL AREA (SGA) ES UN GRUPO DE ESTRUCTURAS DE MEMORIA CONOCIDO COMO SGA. ESTA CONTIENE DATOS E INFORMACION DE CONTROL PARA UNA INSTANCIA DE LA BASE DE DATOS DE ORACLE. ESTA SGA ES COMPARTIDA POR EL SERVIDOR Y LOS PROCESOS DE BACKGROUND. EJEMPLOS DE DATOS ALMACENADOS EN LA SGA: DATABLOCK Y AREAS COMPARTIDAS DE SQL PROGRAM GLOBAL AREA (PGA) SON REGIONES DE MEMORIA QUE CONTIENEN DATOS E INFORMACION DE CONTROL. UN PGA ES MEMORIA NO COMPARTIDA. CREADA POR LA BASE DE DATOS. EL ACCESO A LA PGA ES EXCLUSIVO

LA DATABASE BUFFER CACHE ES LA PARTE DE LA PORCION DE EL SGA QUE ALMACENA COPIA DE LOS DATA BLOCKS LOS CUALES SON LEIDOS DESDE LOS DATA FILES. TODOS LOS USUARIOS QUE SE CONECTAN CONCURRENTEMENTE A LA INSTANCIA COMPARTEN ACCESO A LA DATABASE BUFFER CACHE EL DATABASE BUFFER CACHE: ALMACENA LOS BLOQUES DE DATOS UTILIZADOS RECIENTEMENTE (SE HAYAN O NO CONFIRMADO SUS CAMBIOS EN EL DISCO) AL UTILIZARSE ESTE BUFFER SE REDUCEN LAS OPERACIONES DE ENTRADA Y SALIDA Y POR ESO SE MEJORA EL RENDIMIENTO EL BUFFER REDO LOG GUARDA LOS CAMBIOS EFECTUADOS EN LA BASE DE DATOS. ESTOS BUFERS ESCRIBEN EN EL ARCHIVO FISICO DE REDO LOG TAN RAPIDO COMO SE PUEDA PERO SIN PERDER EFICIENCIA. ESTE ULTIMO ARCHIVO SE UTILIZA PARA RECUPERAR LA BASE DE DATOS ANTE EVENTUALES FALLAS DEL SISTEMA EL AREA SHARED POOL ALMACENA ESTRUCTURAS DE MEMORIA COMPARTIDA, TALES COMO LAS AREAS DE CODIGO SQL COMPARTIDO E INFORMACION INTERNA DEL DICCIONARIO. UNA CANTIDAD INSUFICIENTE DE ESPACIO ASIGNADO A ESTA AREA PODR REDUNDAR EN PROBLEMAS DE RENDIMIENTO. EN RESUMEN: CONTIENE LAS AREAS DEL CACHE DE LA BIBLIOTECA Y LAS AREAS DE CACHE DEL DICCIONARIO DE DATOS EL CACHE DE LA BIBLIOTECA SE UTILIZA PARA ALMACENAR CODIGO SQL COMPARTIDO AQU SE MANEJAN LOS ARBOLES DE PARSEO Y EL PLAN DE EJECUCION DE LOS QUERYS. PARA EJECUTAR UNA SENTENCIA SQL ORACLE NECESITA LLEVAR ADELANTE VARIOS PASOS. CADA UNO DE ESTOS PASOS RECUPERA FISICAMENTE DE LA BASE DE DATOS FILAS DE DATOS O LOS PREPARA DE ALGUNA MANERA PARA ENTREGARLOS AL USUARIO QUE EJECUTO LA SENTENCIA. LA COMBINACION DE PASOS QUE ORACLE LLEVA ADELANTE PARA EJECUTAR UNA SENTENCIA CONSTITUYE EL PLAN DE EJECUCION. EJEMPLO DE AUTOTRACE DONDE SE VE EL COSTO: SIEMPRE QUE SE LLEVE A CABO UNA CONSULTA SE RECOMIENDA LLEVAR A CABO UN PLAN DE EJECUCION PARA SABER QUE ESTAN O NO EFICIENTES Y CORREGIRLAS EN ESTE ULTIMO CASO.

EN EL PLAN DE EJECUCION SE PUEDE OBSERVAR UNA COLUMNA LLAMADA COST QUE CORRESPONDE AL COSTO DE LA CONSULTA POR CADA PASO QUE SE REALIZA EN EL PLAN DE EJECUCIN ASI COMO EL TOTAL FINAL. PERO COMO SE DETERMINA EL COSTO? QUE ES? ESTA FORMULA DETERMINA EL COSTO

COSTO = ((#LSim x TLSim) + (#LMul x TLMul) + (#CProc / VProc)) / TLSim #LSim TLSim #LMul TLMul #CProc VProc NUMERO DE LECTURAS DE BLOQUE SIMPLE TIEMPO QUE TARDA CADA LECTURA DE BLOQUE SIMPLE NUMERO DE LECTURAS DE MULTIPLES BLOQUES TIEMPO QUE TARDA CADA LECTURA DE MULTIPLES BLOQUES NUMERO DE CICLOS DEL PROCESADOR VELOCIDAD DEL PROCESADOR

EL COSTO ES IGUAL A: LA MULTIPLICACION DE LA CANTIDAD DE LECTURAS DE BLOQUE SIMPLE POR EL TIEMPO QUE TARDA UNA LECTURA DE BLOQUE SIMPLE, MAS LA MULTIPLICACION DE LA CANTIDAD DE LECTURAS DE BLOQUES MULTIPLES POR EL TIEMPO QUE TARDA UNA LECTURA DE CLOQUES MULTIPLES, MAS LA DIVISION DE LA CANTIDAD DE CICLOS DEL PROCESADOR ENTRE LA VELOCIDAD DEL PROCESADOR. TODO LO ANTERIOR DIVIDIDO ENTRE EL TIEMPO QUE TARDA UNA LECTURA DE BLOQUE SIMPLE DE ESTA FORMA ES COMO SE CONFORMA EL COSTO, NO ES MAS QUE UNA UNIDAD DE TIEMPO QUE PREDICE CUANTO TIEMPO SE LLEVARA UNA CONSULTA AL EJECUTARSE. NO CORRESPONDE A SEGUNDOS O A UNA UNIDAD DE TIEMPO, AUNQUE EN EL MISMO PLAN DE EJECUCION SE PUEDE VER UNA PREDICCION DE ESTE TAMBIEN EL CACHE DEL DICCIONARIO DE DATOS ESTA CONFORMADO POR UN GRUPO DE TABLAS Y VISTAS QUE IDENTIFICAN LA BASE DE DATOS. LA INFORMACION QUE SE GUARDA AQU TIENE RELACION CON LA ESTRUCTURA LOGICA Y FISICA DE LA BASE DE DATOS PROCESOS DE UNA INSTANCIA LOS PROCESOS QUE SE IMPLEMENTAN EN UNA INSTANCIA DE ORACLE Y SU FUNCION PRINCIPAL SON LOS SIGUIENTES: DBWR (DATABASE WRITER) ES EL RESPONSABLE DE LA ESCRITURA EN DISCO DE TODA LA INFORMACION ALMACENADA EN LOS BUFFERS DE BLOQUES QUE NO SE HAN ACTUALIZADO LGWR (LOG WRITER) ES EL RESPONSABLE DE ESCRIBIR INFORMACION DESDE EL BUFFER DE LOG HACIA EL ARCHIVO REDO LOG

CKPT (CHECKPOINT) ES EL RESPONSABLE DE ADVERTIR AL PROCESO DBWR DE EFECTUAR UN PROCESO DE ACTUALIZACION EN EL DISCO DE LOS DATOS MANTENIDOS EN MEMORIA INCLUYENDO LOS DATAFILES Y LOS CONTROL FILES (PARA REGISTRAR EL CHECK POINT) PMON (PROCESS MONITOR) SU MISION ES MONITORIZAR LOS PROCESOS DEL SERVIDOR Y TOMAR ACCIONES CORRECTIVAS CUANDO ALGUNO DE ELLOS SE INTERRUMPE DE FORMA ABRUPTA, LIMPIANDO LA CACHE Y LIBERANDO LOS POSIBLES RECURSOS QUE PUDIERAN ESTAR ASIGNADOS EN ESE MOMENTO SMON (SYSTEM MONITOR) LEVANTA UNA INSTANCIA CUANDO SE LE DA LA INSTRUCCIN DE PARTIDA (AL PRINCIPIO DEL TRABAJO, ENCONTRANDOSE PREVIAMENTE EN SHUTDOWN) ENSEGUIDA LIMPIA LOS SEGMENTOS TEMPORALES Y RECUPERA LAS TRANSACCIONES QUE PUDIERAN HABERSE INTERRUMPIDO DEBIDO A UNA FALLA DEL SISTEMA. ARCH (ARCHIVER)LA FUNCION DE ESTE PROCESO ES LA DE RESPALDAR LA INFORMACION ALMACENADA EN LOS ARCHIVOS REDO LOG CUANDO ESTOS SE LLENAN

BUFFER ESTE TRMINO SE REFIERE A UNA CANTIDAD DE MEMORIA UTILIZADA PARA ALMACENAR INFORMACIN. UN BUFFER COMNMENTE ALMACENA DATOS QUE ESTN A PUNTO DE SER USADOS O SE ACABAN DE UTILIZAR RECIENTEMENTE. EN LA MAYORA DE LOS CASOS SON COPIAS EXACTAS DE DATOS QUE SE ENCUENTRAN ALMACENADOS EN EL DISCO Y SE MANTIENEN EN MEMORIA CON EL FIN DE LOGRAR UN ACCESO MS RPIDO Y AYUDAR DE ESA MANERA A MEJORAR EL RENDIMIENTO DE UN SISTEMA. EN ORACLE, LOS BUFFERS DEL SGA ALMACENAN LOS BLOQUES DE DATOS USADOS MS RECIENTEMENTE. EL CONJUNTO DE BUFFERS QUE GUARDAN ESTOS BLOQUES RECIBEN EL NOMBRE DE DATABASE BUFFER CACHE; Y AQUELLOS QUE SE UTILIZAN PARA GUARDAR TEMPORALMENTE LAS ENTRADAS DEL TIPO REDO LOG HASTA QUE SE ESCRIBEN EN EL DISCO, SE CONOCEN COMO REDO LOG BUFFERS. LOS ARCHIVOS DE REDO LOG REGISTRAN LOS CAMBIOS A LA BASE DE DATOS COMO RESULTADO DE TRANSACCIONES INTERNAS. LOS ARCHIVOS DE REDO LOG PROTEGEN LA BASE DE DATOS DE LA PERDIDA DE INTEGRIDAD EN CASOS DE FALLOS CAUSADOS POR SUMINISTRO DE ENERGIA ELECTRICA O ERRORES EN LOS DISCOS DUROS

EL PROCESO DE ESCRITURA EN LOGS (LGWR) ESCRIBE LOS REGISTROS DE REDO DEL BUFFER DE REDO LOG A TODOS LOS MIEMBROS DEL GRUPO ACTUAL DE REDO LOGS, HASTA QUE EL ARCHIVO SE LLENA O SE SOLICITA UNA OPERACIN DE CAMBIO DE ARCHIVO DE LOG. ENTONCES, CAMBIA EL GRUPO ACTIVO Y COMIENZA A ESCRIBIR EN LOS ARCHIVOS DEL SIGUIENTE GRUPO. LOS GRUPOS DE REDO LOS SON USADOS DE UNA FORMA CIRCULAR. LA INFORMACION ACERCA DE LOS GRUPOS DE REDO LOD BUFFER DE NUESTRA BASE DE DATOS SE ENCUENTRA EN DOS VISTAS: SELECT * FROM v$LOGFILE SELECT * FROM v$LOG

EL SHARED POOL ES UNA PORCION DEL SGA LA CUAL CONTIENE: LA LIBRARY CACHE, EL DICCIONARIO DE DATOS, EL SQL QUERY RESULT CACHE, EL PL/SQL FUNCTION RESULT CACHE, LOS BUFFERS FOR PARALLEL EXECUTION MESSAGES Y LAS ESTRUCTURAS DE CONTROL LA SHARED POOL PUEDE SER DIVIDIDA EN DOS GRANDES SECCIONES: LA LIBRARY CACHE Y EL DICCIONARIO DE DATOS. LA LIBRARY CACHE EST DISEADA PARA INCREMENTAR LA EFICIENCIA DEL CDIGO SQL PERMITIENDO QUE SE COMPARTAN ENTRE LOS USUARIOS LAS SENTENCIAS TANTO SQL COMO PL/SQL. LA LIBRARY CACHE ALMACENA TODAS LAS SENTENCIAS SQL PARSEADAS. CUANDO UN USUARIO EJECUTA UNA SENTENCIA OCURREN DOS COSAS. PRIMERO, ORACLE VERIFICA SI YA EXISTE EN LA LIBRARY CACHE UNA SENTENCIA IDNTICA. SI NO SE ENCUENTRA UNA SENTENCIA IDNTICA, LA SENTENCIA DEBE SER PARSEADA Y LUEGO ALOJADA EN LA LIBRARY CACHE. EL PARSEO REQUIERE, A SU VEZ, DIVERSAS SUBTAREAS QUE IMPLICAN OVERHEAD PARA EL SISTEMA. SI, EN CAMBIO, EXISTE UNA SENTENCIA IDNTICA EN LA LIBRARY CACHE, ORACLE LA UTILIZAR.

EL DICCIONARIO DE DATOS ES UNA COLECCIN DE TABLAS Y VISTAS QUE CONTIENE INFORMACION REFERENTE ACERCA DE LA BASE DE DATOS, DE LAS ESTRUCTURAS Y DE LOS USUARIOS EL DICCIONARIO DE DATOS ES UNA PARTE FUNDAMENTAL DE LA BASE DE DATOS ORACLE. EST FORMADO POR TABLAS, VISTAS Y PACKAGES A LOS QUE SE PUEDE ACCEDER PARA OBTENER INFORMACIN. LAS TABLAS SE CREAN AUTOMTICAMENTE DURANTE LA INSTALACIN Y PERMITEN CONOCER:

ESTRUCTURA LGICA Y FSICA DE LA DB LOS USUARIOS DE LA BD RESTRICCIONES DE INTEGRIDAD SOBRE LAS TABLAS DE LA DB ESPACIO ASOCIADO A CADA OBJETO EN LA DB Y LA CANTIDAD QUE SE EST UTILIZANDO POR LOS DISTINTOS OBJETOS CREADOS POR LOS USUARIOS DE LA DB EL USUARIO SYS ES EL DUEO DEL DD Y TIENE TODOS LOS PERMISOS SOBRE CUALQUIER OBJETO DE LA DB (TAMBIN LOS DE CUALQUIER USUARIO). COMPONENTES DE LA DD:

TABLAS BASE: UNA SERIE DE TABLAS A LAS QUE EL SERVIDOR DE DATOS ACCEDE CADA VEZ QUE SE PROCESA UNA INSTRUCCIN DDL DE SQL O EN ALGUNOS COMANDOS DML. VISTAS ESTTICAS: SE CREAN DURANTE LA INSTALACIN DEL RDBMS Y DECODIFICAN Y RESUMEN LA INFORMACIN CONTENIDA EN LAS TABLAS BASE. DURANTE LA CREACIN DE ESTAS VISTAS SE GENERAN SINNIMOS PBLICOS PARA PROVEER EL ACCESO A LOS USUARIOS DEL RDBMS. ESTAS VISTAS DEBEN SER UTILIZADAS PARA LAS LABORES DE ADMINISTRACIN RUTINARIAS QUE NECESITEN INFORMACIN ESPECFICA SOBRE CONFIGURACIN Y ESTADO DE LA DB. TIENEN EL NOMBRE DE ESTTICAS PORQUE NO MANTIENEN INFORMACIN RELACIONADA CON LAS SESIONES. SE DIVIDEN EN 3 CATEGORAS: VISTAS CON PREFIJO USER: PUEDE UTILIZARLAS CUALQUIER USUARIO DE LA DB Y SE REFIEREN A OBJETOS POSEDOS POR DICHO USUARIO. EJ: USUARIO DAVE EJECUTA: SELECT * FROM USER_TABLES; SE DESPLEGAR TODA LA INFORMACIN DE LAS TABLAS CUYO PROPIETARIO SEA DAVE. VISTAS CON PREFIJO ALL: EVIDENTE, LAS PODR USAR CUALQUIER USUARIO Y ADEMS AADEN LA COLUMNA OWNER AL RESTO DE INFORMACIN. CON ESTAS VISTAS SE PUEDE TENER ACCESO A LA INFORMACIN DE LOS OBJETOS QUE EL USUARIO ES DUEO ADEMS DE LOS OBJETOS PBLICOS Y LOS QUE EL USUARIO TIENE ACCESO (POR PERTENECER A UN GRUPO DE SEGURIDAD O POSEER CIERTOS PRIVILEGIOS). VISTAS CON PREFIJO DBA: DAN INFORMACIN SOBRE TODOS LOS OBJETOS DE LA DB. USUALMENTE TAMBIN TIENEN LA COLUMNA OWNER. SLO LAS PUEDE UTILIZAR EL ADMINISTRADOR O USUARIOS CON PRIVILEGIO SELECT ANY TABLE O PERTENEZCA A UN ROL QUE INCLUYA EL PRIVILEGIO.

VISTAS DINMICAS (O PERFORMANCE VIEWS): INCLUYEN INFORMACIN SOBRE LAS CONDICIONES ACTUALES DE OPERACIN DEL RDBMS. LA MAYOR PARTE SON CREADAS DURANTE LA INSTALACIN Y ALGUNAS SE CREAN ESPECFICAMENTE PARA MONITOREAR CIERTA ACTIVIDAD. TODAS SE IDENTIFICAN POR EL PREFIJO V$. EJ: LA VISTA DINMICA V$_SESSION INCLUYE INFORMACIN SOBRE LAS SESIONES ACTUALES Y LA VISTA V$SYSSTAT PROVEE INFORMACIN ESTADSTICA SOBRE EL RDBMS. ORACLE REPRESENTA CADA SENTENCIA DE SQL QUE SE EJECUTA CON UN AREA COMPARTIDA DE SQL. ESTO PERMITE RECONOCER CUANDO DOS USUARIOS ESTAN EJECUTANDO LA MISMA INSTRUCCIN SQL Y REUTILIZA EL AREA COMPARTIDA DE SQL PARA DICHOS USUARIOS. A PARTIR DE ORACLE 11G SE AGREGARON VARIAS FUNCIONALIDADES INTERESANTES. UNA DE ELLAS ES LO QUE SE DENOMINA SQL RESULT CACHE. CON ESTE NUEVO FEATURE SE PUEDEN ACELERAR SENTENCIAS QUE UTILIZAN TABLAS CON TASA DE CAMBIO NULA O MUY BAJA, POR EJEMPLO TABLAS DE REFERENCIA. LA IDEA DE ESTE MECANISMO ES GUARDAR EL RESULTADO DE LA EJECUCIN DE LA SENTENCIA PARA QUE LAS SIGUIENTES EJECUCIONES LO REUTILICEN. EL RESULT CACHE ES UNA NUEVA OPCIN DISPONIBLE EN ORACLE11G, LA CUAL CREA UNA PORCIN DE MEMORIA DESTINADA A GUARDAR AQUELLOS DATOS QUE SON MAS O MENOS ESTTICOS DENTRO DE ORACLE, LA FINALIDAD?, PUES PODER CONSULTAR EL VALOR FINAL SIN NECESIDAD DE PASAR NUEVAMENTE POR CLCULOS O POR GRANDES PLANES DE EJECUCIN PARA RESOLVER UNA SENTENCIA SQL. CABE MENCIONAR QUE RESULT CACHE SLO ESTA DISPONIBLE PARA EDICIONES ENTERPRISE DE ORACLE11G. ADEMS DE LO ANTERIOR, COMO EL BUFFER RESULT CACHE SE ALAMACENA EN LA ZONA DE LA SHARED POOL , Y LA SHARED POOL SE ECUENTRA DENTRO DE LA SGA, PARA LA ARQUITECTURA EN RAC, CADA NODO PUEDE ALMACENAR SUS PROPIOS DATOS Y NO NECESARIAMENTE ESTOS DATOS VIAJAN A TRAVS DEL INTERCONNECT, A PESAR DE QUE LAS SGAS SE ENCUENTREN DENTRO DEL CACHE FUSION. UNA EXPLICACIN EN DETALLE DE LAS DOS GRANDES OPCIONES DE RESULT CACHE, ORIENTADO A CONSULTAS Y ORIENTADO A LOS RESULTADOS DE LAS FUNCIONES PL/SQL LOS BUFFERS FOR PARALLEL EXECUTION MESSAGES DARLES A LOS MUCHACHOS LA DOCUMENTACIN DE LA CONSEJERIA DE SALUD DE ANDALUCIA, ESPAA

ASIGNACION Y REUTILIZACION DE MEMORIA EN LA ALBERCA COMPARTIDA

Memoria de la Instancia
LA INSTANCIA LA COMPONEN PROCESOS (PROGRAMAS EJECUTABLES CON INTERFAZ O SERVICIOS) Y RECURSOS (ESTRUCTURAS DE MEMORIA RAM, BUFFERS, DATOS). EL MENSAJE DEVUELTO POR SHOW SGA MUESTRA EL TAMAO TOTAL DE LA MEMORIA COMPARTIDA SGA.
show sga

Total System Global Area 15077376 bytes

Fixed Size 49152 bytes Variable Size 12906496 bytes Database Buffers 2048000 bytes Redo Buffers 73728 bytes Contiene informacin sobre: Estructuras de Memoria SGA System Global Area 49 Kb rea Fija. Informacin adicional sobre procesos Usuarios conectados Bloqueos Nmero mximo de bloqueos para DDL y DML Colas de Entrada/Salida. Nmero de db_links permitidos

12 Mb

rea de memoria compartida. Shared Pool. rea Variable. (Shared SQL Area). Se dimensiona con el parmetro shared_pool_size en init<sid>.ora,

rea compartida para sentencias SQL

por ejemplo
shared_pool_size = 11534336

Contiene:

Sentencias SQL preanalizadas (parsed) Procedimientos, libreras Diccionario de datos


Cach del diccionario (Dictionary Cach o Row Cach) Contiene los datos y bloques de rollback en uso

2 Mb

Cach de datos (buffer cach) Buffers de BD. Database Buffers

Se dimensiona con el parmetro db_block_buffers en init<sid>.ora, por ejemplo


db_block_buffers = 1000

73 Kb

Cach de redo logs (Redo log buffers)

Contiene los datos que son modificados para pasarlos a ficheros histricos y mantener un histrico capaz de reconstruir la BD en caso de fallo

PGA reas de ordenacin Ejecutables de Oracle

Cursores (reas privadas para sentencias SQL) Pila de variables reas de ordenacin de sentencias. Sort Area

Procesos de la Instancia Procesos Background Estndar DBWR. DataBase Writer LGWR. LoG Writer. Escribe en los ficheros de la BD los buffers de datos modificados en memoria Escribe en los ficheros histricos de la BD (redo log files) cuando los redo log buffers se han llenado o cuando se produce un commit. Esto permite el recovery. Trata las recuperaciones en caso de fallo. Limpia los segmentos temporales cuando no estn en uso. Realiza el Coalesce de tablespaces, uniendo en una sola extensin extensiones contiguas. Recuperaciones en caso de fallo de un usuario. Libera recursos inactivos. En configuraciones MultiThreaded Server restablece los procesos dispatcher y servidores cados. Proceso de Apoyo al LGWR. Actualiza ficheros de control y las cabeceras de ficheros de datos agilizando puntos de ruptura. Este proceso se activa si indicamos en init<sid>.ora la linea checkpoin_process=true Procesos encargados de distribuir las peticiones de usuarios de sentencias SQL entre los procesos compartidos. Procesos Compartidos que resuelven sentencias SQL Procesos de sincronizacin de instancias Soluciona problemas de procesos muertos o colgados en Parallel Server Ejecucin de sentencias de forma paralela distribuyendo la carga entre distintas CPU Proceso encargado de copiar los histricos (redo log files) en ficheros aparte (archiver files) antes de que sean sobreescritos Proceso encargado del tratamiento de fallos y recuperaciones producidos en transacciones distribuidas debidos a fallos de la red o de la instancia Procesos para el mantenimiento y refresco de snapshots en BD distribuidas

SMON. System MONitor. PMON. Process MONitor.

Puntos de Ruptura

CKPT

Multithread Server

D000 Dnnn S000 Snnn

Parallel Server LCKn LMON Parallel Query Modo Archiver (archive log) Opcin Distribuida P000 Pnnn ARCH

RECO

SNP0 SNPn

OTRA REA ES LA LIBRARY CACHE. ES SIN DUDA OTRA ZONA BASTANTE CONCURRIDA DE LA BASE DE DATOS. ORACLE REPRESENTA CADA SENTENCIA SQL QUE SE EJECUTA CON UNA ZONA SQL COMPARTIDA, CON LO QUE ORACLE ES CAPAZ DE RECONOCER CUANDO 2 USUARIOS EJECUTAN LA MISMA SENTENCIA, Y AS PODER REUTILIZAR LA MISMA REA PARA AMBOS USUARIOS. ESTA ZONA DE MEMORIA COMPARTIDA CONTIENE EL PLAN DE EJECUCIN, CON LO QUE ORACLE AHORRA MEMORIA UTILIZANDO LA MISMA REA PARA LAS SENTENCIAS QUE SE EJECUTAN EN MLTIPLES OCASIONES.

LARGE POOL EL ADMINISTRADOR DE LA BASE DE DATOS PUEDE CONFIGURAR ESTA REA DE MEMORIA OPCIONAL, PARA PROVEER LOCALIDADES MS AMPLIAS DE MEMORIA PARA: MEMORIA DE SESIONES. PROCESOS DE I/O DEL SERVIDOR BACKUPS DE LA BASE DE DATOS Y OPERACIONES DE RECUPERACIN. AL ASIGNAR ESPACIOS DENTRO DE LARGE POOL PARA UN SERVIDOR COMPARTIDO, ORACLE PUEDE USAR LA SHARED POOL PRINCIPALMENTE PARA GUARDAR EN CACH LAS SENTENCIAS COMPARTIDAS DE SQL Y EVITAR LA SOBRECARGA CAUSADA POR LA DISMINUCIN DE LA CACH DE SQL COMPARTIDA. ADEMS LA MEMORIA PARA BACKUP Y OPERACIONES DE RECUPERACIN Y PARA PROCESOS DE I/O DEL SERVIDOR ES ASIGNADA EN BUFFERS DE ALGUNOS CIENTOS DE KILOBYTES, POR LO QUE LA LARGE POOL MUCHO MS CAPAZ DE SATISFACER DICHA DEMANDA DE MEMORIA QUE LA SHARED POOL. JAVA POOL LA MEMORIA JAVA POOL ES USADA EN LA MEMORIA DEL SERVIDOR PARA TODAS LAS SESIONES QUE UTILICEN CDIGO JAVA Y DATOS EN LA JVM. ESTA MEMORIA ES USADA DE DIFERENTES MANERAS DEPENDIENDO DEL MODO EN EL QUE LA BASE DE DATOS EST CORRIENDO. STREAMS POOL ESTA MEMORIA ES USADA EXCLUSIVAMENTE POR FLUJOS DE ORACLE. ESTA ALMACENA COLAS DE MENSAJES Y PROVEE MEMORIA PARA QUE LOS FLUJOS DE ORACLE CAPTUREN PROCESOS Y LOS APLIQUEN. A MENOS QUE SE CONFIGURE ESPECFICAMENTE, EL TAMAO DE ESTA MEMORIA EMPIEZA EN CERO. EL TAMAO DE LA STREAMS POOL CRECE DINMICAMENTE COMO SEA NECESARIO CUANDO LOS FLUJOS DE ORACLE SON USADOS.

También podría gustarte