ARQUITECTURA DE ORACLE INGENIERÍA DE SISTEMAS DE INTERNET. Realizado por: José Cremades 1 ESQUEMA El Gestor de Oracle. Ficheros de una Base de Datos Oracle Estructura de Memoria Comunicación en cliente y BD: Protocolo SQL*Net. Auditoría en Oracle. Estrategias de Copias de Seguridad y Recuperación. Conceptos de Optimización: Plan de Ejecución, Índices, Tablas Particionadas, Vistas materializadas, Parallel SQL, SQL Distribuido, RAC. 2
Ficheros de Datos Ficheros Datos 1 N Espacios de Tabla N 1 1 1 Segmentos Extensión 1 Ext 2 3... Tabla Indice Snapshot Bloque Datos 1 Bloque 2 3... El Espacio de Tabla SYSTEM es dónde reside el diccionario de datos. La extensión es un conjunto consecutivo de bloques de datos que pertenecen a un mismo fichero de datos. Tamaño típico bloque datos: 2-4-8-16 Kb. (Siempre múltiplo exacto del tamaño del bloque del Sistema Operativo) 3 Ficheros de Redo Log Ficheros en donde se recogen todas sentencias de una Base de Datos. Mínimo nº de ficheros de redo = 2 Escritura cíclica. Cuando de llena el 1º pasa al 2º. Cuando de llena el 2º vuelve al 1º. Modo ARCHIVADO: Antes sobre-escribir guarda el contenido, creando los ficheros de redo log archivados. Son ficheros muy importantes para los mecanismos de recuperación. Oracle permite trabajar con ficheros de Redo Log en espejo para mayor seguridad. 4
Ficheros de Control. Contienen información del arranque y parada, nombre Base Datos, nombre y directorio en donde se encuentran el resto de ficheros, etc. Todos los ficheros de una Base de Datos contienen la misma información (copias unos de otros). A estos ficheros se acceden cuando la Base de Datos está montada o abierta. Al resto de ficheros sólo se accede si la Base de datos está abierta., -, 5 El Área Global del Sistema. Buffer de Datos Zona de memoria reservada para la lectura de los bloques de datos. Dimensionada por los parámetros DB_BLOCK_BUFFER y DB_BLOCK_SIZE en 8i, o CACHE_SIZE en 9i. El proceso DB Writer lleva los bloques de memoria a disco. Los procesos servidores llevan los bloques de disco a memoria., - Porcentaje de acierto deseado a la hora de buscar un bloque, en el buffer de datos: 90/95%. 6
El Área Global del Sistema. Buffer de Redo Log Zona de memoria en donde se van registrando todas las operaciones, a excepción de las select. Dimensionada por el parámetro LOG_BUFFER. Fast Commit: Cuando se produce el Commit de una transacción, no se lleva a disco el resultado de las sentencias, sino las propias sentencias., - El contenido de este buffer se lleva a los ficheros de Redo Log., Modo ARCHIVADO vs Modo NO ARCHIVADO. 7 El Área Global del Sistema. Shared Pool Zona de memoria reservada para la ejecución de las sentencias SQL y el código PL/SQL. Dimensionada por el parámetro SHARED_POOL_SIZE. Dos partes principales: Library Cache (Sentencias) y la Row Cache (Diccionario de Datos)., - Son los procesos servidores los que se encargan de, realizar las sentencias SQL. La zona de memoria reservada para la ejecución de una determinada sentencia SQL se denomina cursor. 8
Otras Zonas de Memoria. PGA: Área Global del Proceso Java Pool Area: Dimensionado por JAVA_POOL_SIZE Large Pool: Dimensionado por LARGE_POOL_SIZE Reserved Shared Pool: Dimensionado por SHARED_POOL_ RESERVED_SIZE. Dentro de la Shared Pool UGA: User Global Area. Dentro de la Shared Pool y presente sólo en, - configuaración Multithread, 9 Procesos de Background. DBWR: Database Writer. De buffer datos a ficheros de datos. LGWR: Log Writer. De buffer redo log a ficheros redo log. ARCH: De ficheros de Redo Log a Ficheros Redo Log Archivados. CKPT: Encargado de los puntos de comprobación. SMON: System Monitor. PMON: Process Monitor., - RECO: Recuperación Transacciones Distribuidas. Dnnn, Snnn: Dispatcher Process y Servidores Compartidos., 10
Protocolo SQL*Net. Pasos para conectarse a una Base de Datos Oracle: 1. El cliente introduce la información necesaria para establecer la conexión (usuario, clave y descriptor de conexión). 2. La máquina cliente intenta resolver la localización del servidor Oracle. 3. Si la localización se resuelve, se intentan contactar con el servidor. 4. El servidor recibe la petición de conexión y determina si es válida. 5. Si el servidor acepta la petición, se envía un mensaje al cliente diciendo que la conexión ha sido establecida. 6. Si el servidor rechaza la petición, se envía un mensaje al cliente diciendo que la conexión ha fallado. 11 Protocolo SQL*Net. Posibilidades de resolver el descriptor de conexión: 1. LocalNaming Option (TNSNAMES) 2. Oracle Names Server Option (ONAMES) 3. Hostnaming Option (HOSTNAME) 4. External Naming Service Option.(NDS, NIS, CDS) Puede trabajar con varios de ellos a la vez. El orden de aplicación viene determinado por el parámetro del fichero sqlnet.ora NAMES.DIRECTORY_PATH. Ejemplo: NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME, NIS) 12
Protocolo SQL*Net. TNSNAMES La localización ficheros en $ORACLE_HOME /network/admin. Se puede cambiar la ubicación cambiando variable TNS_ADMIN. 13 Protocolo SQL*Net. Names Server La localización en un servidor de nombres. 14
Protocolo SQL*Net. HostNaming Se accede utilizado únicamente el nombre de la máquina que contiene a la Base de Datos. Limitaciones: Escucha puerto 1521 Protocolo TCP GLOBAL_DBNAME = nombre máquina 15 Auditoría. Tipología. Programada Manualmente: Realizada a través de Triggers. Inserciones, modificaciones y borrados. Automática: Proporcionada por Oracle. Resultados bien a Base de datos bien a fichero. Auditoría de DDL, Cx/Descx, DML y Select. Funciones de Log Miner: A partir de la versión 8.1.5 es posible la exploración de los ficheros de redo log archivados. Pasos para utilizar Log Miner. 16
Copias de Seguridad. Tipología. Copia Física modo No Archivado: Copia de todos los ficheros BD. Sólo es posible cuando la Base de Datos está parada. Copia Física modo Archivado: Copia de los ficheros BD. Es posible con BD abierta o cerrada. Copia Lógica: Se genera un nuevo fichero con la información deseada. Sólo es posible cuando la Base de Datos está Abierta. IMPORTANTE: Sólo la copia física en modo archivado permite llegar hasta el momento del fallo. El resto sólo hasta el momento en que se hizo la copia de seguridad. ORACLE STANDBY DATABASE. 17 Copias de Seguridad. Físicas Modo Archivado. Copia / Recuperaciones a nivel de Base se Datos, Espacio de Tabla o Fichero de Datos. La copia / recuperación en modo No archivado es siempre de toda la Base de Datos Se llega hasta el momento del fallo, siempre que tengamos a salvo la copia de seguridad y todos los ficheros de redo log archivados y online. No es necesario parar la Base de Datos. Importante para sistemas 24x7. 18
Recuperaciones. Importación. Nivel de Tabla Usuario Base de Datos. Recuperación Completa de B.D. Recuperación Parcial: Fichero de Datos o Espacio Tabla La B.D. Completa siempre se recupera con la B.D. montada. Los E.T. con la B. D. Abierta. Los ficheros de datos tanto con B.D. Montada como Abierta. Comando RECOVER: Hasta SCN, una fecha o hasta el final. Recuperación Ficheros de Redo Log Recuperación Ficheros de Control. 19 Conceptos de Optimización. Acceso a una tabla. Índices Tiempo Full Scan % de las filas devueltas por el índice del total de la tabla. 0 100 Acceso por índices. Vamos al índice con unas condiciones para sacar los ROWIDs de la filas que cumplen dichas condiciones. Acceso por full scan: Leemos todos los bloques de datos del segmento de la tabla. IMPORTANTE: Situar índices y tablas en espacios de tablas distintos que estén en diferentes discos. 20
Conceptos de Optimización. Plan de Ejecución. Las sentencias SQL no son procedurales, sin embargo todo lo que se ejecuta en la CPU tiene un orden. El plan de ejecución es la forma procedural de ejecutar una sentencia SQL. Una misma sentencia SQL puede realizarse a través de muchos planes de ejecución distintos. Todos ellos darán el mismo resultado, pero el tiempo empleado puede variar mucho. Los optimizadores (reglas y costes) son los encargados de sacar el plan de ejecución de una sentencia SQL. 21 Conceptos de Optimización. Otros Conceptos. Tablas particionadas: La tabla la dividimos en función de los valores de sus datos. Cada división o partición posee un segmento distinto que podemos situarlo en Espacios de Tabla distintos. Vistas Materializadas: Son sentencias Select cuyos resultados los almacenamos en disco. En refresco de estos resultados puede ser programado, bajo demanda u On Commit. Son importantes para la replicación y los Datawarehouse. Parallel SQL: En vez de ser un único proceso de usuario el que realiza la SQL, son varios en paralelo. RAC: Real Application Cluster Parallel Server. 22
Conceptos de Optimización. Otros Conceptos. SQL Distribuido: Utilización de DB Links. Siempre hay un nodo coordinador de la sentencia. Si es una sentencia DML el coordinador es el nodo en el que se produce la inserción, modificación o borrado. Si es una select el coordinador es dónde se lanza la sentencia. Se puede transferir la coordinación. El nodo coordinador debería ser aquel que tenga: La mejor máquina. El mayor volumen de datos a procesar. La versión de Oracle más moderna. 23 Bibliografía. Forms Data Format Toolkit Reference. Adobe System. Junio 2001. PDF References. Adobe System. 2003. Forms Data Format Toolkit Overview. Adobe System. Technical Note #5191. Junio 2001. FDF Toolkit Overview and Reference. Adobe System. Technical Note #5194. Octubre 2003. http://www.oracle.com http://metalink.oracle.com http://technet.oracle.com 24