1) Oracle Server es un sistema de gestión de bases de datos que proporciona acceso a la información almacenada en una base de datos Oracle a través de una instancia Oracle. 2) Una instancia Oracle combina procesos en segundo plano y estructuras de memoria para acceder a una única base de datos. 3) La memoria de Oracle se compone del SGA y el PGA, donde el SGA almacena información compartida como la caché de buffers y el conjunto compartido.
2. ADMINISTRACIÓN DE BASE DE DATOS FACILITA EL REAL APPLICATION CLUSTERS: Mejora la escalabilidad y disponibilidad de una base de datos, ya que permite que múltiples instancias del software de Oracle accedan a una única base de datos. PARTICIONAMIENTO: Proporciona utilidades para implementar aplicaciones de gran tamaño y escalables ya que controlar las tablas y los índices con un nivel de granularidad inferior al que sería posible con la versión básica de Enterprise Edition. PAQUETES DE ORACLE NTERPRISE MANAGER: Son programas complementarios que proporcionan a los administradores un juego de herramientas para una gestión de cambios, un ajuste, un control y un diagnóstico avanzados de los entornos de Oracle. SEGURIDAD AVANZADA: Proporciona seguridad de red de servidor a servidor y de cliente a servidor mediante el cifrado y la comprobación de la integridad de datos, y soporta servicios de autenticación de usuario mejorados con servicios de seguridad de terceros.
3. Oracle Server: Existen varios archivos, procesos y estructuras de memoria en Oracle Server, no obstante, cuando se procesa una sentencia SQL no se utilizan todos. InstanciaOracle: Una instancia Oracle es la combinación de los procesos en segundo plano y las estructuras de memoria ADMINISTRACIÓN DE BASE DE DATOS Base de datos Oracle: Una base de datos Oracle está formada por archivos del sistema operativo, también llamados archivos de base de datos. Otros archivos clave: Los archivos que no son de base de datos se utilizan para configurar la instancia, autenticar los usuarios con privilegios y recuperar la base de datos en caso de que se produzca un fallo de disco. . Procesos de usuario y de servidor: Los procesos de usuario y de servidor son los procesos principales implicados en la ejecución de una sentencia SQL. Otros procesos: Existen otros muchos procesos que se utilizan en otras opciones, como Gestión de Colas Avanzada, Real ApplicationClusters, Servidor Compartido, Replicación Avanzada, etc
4. Administración de Base de Datos Oracle Server. Definición: Es un sistema de gestión de bases de datos que proporciona un enfoque abierto, global e integrado de la gestión de información que se encuentra formado por una instancia Oracle y una base de datos Oracle Oracle Server es la clave para la gestión de la información. Regla General:Oracle Server debe gestionar grandes cantidades de datos en un entorno para varios usuarios de forma fiable, de modo que muchos usuarios puedan acceder de forma simultánea a los mismos datos. Al mismo tiempo, es necesario que el rendimiento obtenido sea excelente. Nota: Oracle Server debe impedir el acceso no autorizado y proporcionar soluciones eficaces para la recuperación en caso de fallo
5.
6. En esta configuración, conocida como cliente-servidor, el software de red se utiliza para establecer la comunicación entre el usuario y Oracle Server.
7. En una conexión de tres capas, el equipo del usuario se comunica a través de la red con un servidor de aplicaciones o de red, que se conecta a través de una red a la máquina que ejecuta la instancia Oracle. Sesiones : Una sesión es una conexión específica de un usuario a Oracle Server. La sesión se inicia cuando Oracle Server valida al usuario, y finaliza cuando el usuario se desconecta o cuando se produce una terminación anormal.
8.
9. Los archivos de datos que contienen los datos reales de la base de datos
10.
11. El archivo de contraseñas autentica los usuarios con privilegios para iniciar y cerrar una instancia Oracle.
14. Otras estructuras (por ejemplo, gestión de bloqueos y bloqueos internos, datos estadísticos) El área SGA también se llama área global compartida. Se utiliza para almacenar información de base de datos que comparten los procesos de base de datos. Contiene datos e información de control para Oracle Server y se asigna en la memoria virtual de la computadora donde reside Oracle. Para ver las asignaciones de memoria SGA, se puede utilizar la siguiente sentencia:
15. SGA Dinámica : A partir de Oracle9i, el área SGA dinámica implementa una infraestructura que permite modificar la configuración del SGA sin cerrar la instancia. Asimismo, esto permite modificar el tamaño de la caché de buffers de base de datos, del conjunto compartido y del conjunto grande sin cerrar la instancia Especificación del Tamaño del SGA: Los parámetros que afectan al tamaño del área SGA en mayor medida son: DB_CACHE_SIZE: Tamaño de la caché de bloques estándar. El valor por defecto es de 48 MB para UNIX y 52 MB para NT. SHARED_POOL_SIZE: Tamaño en bytes del área dedicada a SQL compartido y a PL/SQL. El valor por defecto es 16 MB. Si se trata de 64 bits, el tamaño por defecto es de 64 MB. LOG_BUFFER: Número de bytes asignados al buffer de redo log LARGE_POOL_SIZE: Tamaño del conjunto grande. El valor por defecto es cero (excepto si el parámetro PARALLEL_AUTOMATIC_TUNING de init.orase define en TRUE, en cuyo caso se calcula automáticamente el valor por defecto.) JAVA_POOL_SIZE: Tamaño del conjunto Java. El valor por defecto es 24 MB. Por lo tanto, el tamaño del área SGA no puede superar el especificado en SGA_MAX_SIZE menos los valores de DB_CACHE_SIZE, LOG_BUFFER, SHARED_POOL_SIZE, LARGE_POOL_SIZE y JAVA_POOL_SIZE
16. Área Global del Sistema Esta área es dinámica, su tamaño definido por el parámetro SGA_MAX_SIZE, asignada y con seguimiento en gránulos por componentes del SGA Unidad de Asignación Un gránulo es una unidad de asignación de memoria virtual contigua. El tamaño de un gránulo depende del tamaño del SGA total estimado cuyo cálculo se basa en el valor del parámetro SGA_MAX_SIZE. • 4 MB si el tamaño del SGA estimado es < 128 MB • 16 MB, en caso contrario Los componentes (caché de buffers de base de datos, conjunto compartido y conjunto grande) pueden aumentar o disminuir de tamaño en función de los límites del gránulo. Al iniciar la instancia, Oracle Server asigna las entradas de gránulos, una por cada gránulo que soporta el número de bytes de SGA_MAX_SIZE de espacio de dirección. Mientras continúa el inicio, cada componente adquiere los gránulos que necesita. La configuración de SGA mínima es de tres gránulos (un gránulo para el área SGA fija [incluye los buffers de redo], un gránulo para la caché de buffers de base de datos y un gránulo para el conjunto compartido).
17. Área Global del Sistema Esta área es dinámica, su tamaño definido por el parámetro SGA_MAX_SIZE, asignada y con seguimiento en gránulos por componentes del SGA Unidad de Asignación Un gránulo es una unidad de asignación de memoria virtual contigua. El tamaño de un gránulo depende del tamaño del SGA total estimado cuyo cálculo se basa en el valor del parámetro SGA_MAX_SIZE. • 4 MB si el tamaño del SGA estimado es < 128 MB • 16 MB, en caso contrario Los componentes (caché de buffers de base de datos, conjunto compartido y conjunto grande) pueden aumentar o disminuir de tamaño en función de los límites del gránulo. Al iniciar la instancia, Oracle Server asigna las entradas de gránulos, una por cada gránulo que soporta el número de bytes de SGA_MAX_SIZE de espacio de dirección. Mientras continúa el inicio, cada componente adquiere los gránulos que necesita. La configuración de SGA mínima es de tres gránulos (un gránulo para el área SGA fija [incluye los buffers de redo], un gránulo para la caché de buffers de base de datos y un gránulo para el conjunto compartido).
18. Shared pool - Conjunto compartido Se utiliza para almacenar: – Las últimas sentencias SQL ejecutadas – Las últimas definiciones de datos utilizadas Se encuentra formado por dos estructuras de memoria clave relacionadas con el rendimiento: – Caché de Biblioteca – Caché del Diccionario de Datos Y su Tamaño está definido por el parámetro SHARED_POOL_SIZE. El entorno de conjunto compartido contiene estructuras tanto fijas como variables. Las estructuras fijas mantienen relativamente el mismo tamaño, mientras que las estructuras variables aumentan y disminuyen en función de los requisitos del usuario y del programa. El tamaño real de las estructuras fijas y variables se basa en un parámetro de inicialización y el funcionamiento de un algoritmo interno de Oracle.
19. Especificación del Tamaño del Conjunto Compartido El conjunto compartido se utiliza para objetos que se pueden compartir de forma global, como planes de ejecución SQL reutilizables, paquetes PL/SQL, procedimientos, funciones e información de cursor, su tamaño se debe ajustar a las necesidades tanto de las áreas fijas como variables. Library cache - Caché de Biblioteca Permite almacenar información acerca de las sentencias SQL y PL/SQL utilizadas más recientemente, también permite compartir las sentencias utilizadas con mayor frecuencia, esto se lo realiza por medio de un algoritmo LRU (utilizado menos recientemente) Está formado por dos estructuras: – Área de SQL compartido – Área de PL/SQL compartido SQL compartido: Almacena y comparte el plan de ejecución y el árbol de análisis para las sentencias SQL que se ejecutan en la base de datos. La segunda vez que se ejecuta una sentencia SQL idéntica, ésta se puede beneficiar de la información de análisis disponible en el SQL compartido para acelerar la ejecución. Para garantizar que las sentencias SQL utilizan un área SQL compartida siempre que sea posible, el texto, el esquema y las variables ligadas deben ser idénticos. • PL/SQL compartido: Almacena y comparte las sentencias PL/SQL ejecutadas más recientemente. Los procedimientos (funciones, paquetes y disparadores) y las unidades de programa analizados y compilados se almacenan en esta área.
20. Data Diccionary cache - Caché del Diccionario de Datos La caché del diccionario de datos también se llama caché del diccionario o caché de filas. La información acerca de la base de datos (datos de cuenta de usuario, nombres de archivos de datos, nombres de segmento, ubicaciones de extensiones, descripciones de tablas y privilegios de usuario) se almacena en las tablas del diccionario de datos. Cuando el servidor necesita esta información, se leen las tablas del diccionario de datos y los datos devueltos se almacenan en la caché del diccionario de datos. Especificación del Tamaño del Diccionario de Datos El tamaño total depende del tamaño del conjunto compartido y lo gestiona de forma interna la base de datos. Si la caché del diccionario de datos es demasiado pequeña, la base de datos tiene que consultar las tablas del diccionario de datos repetidas veces para obtener la información que necesita el servidor. Estas consultas se denominan llamadas recursivas y son más lentas que las consultas directas de la caché del diccionario de datos, puesto que las consultas directas no utilizan SQL. Database buffer cache - Caché de Buffers de Base de Datos. En este espacio de memoria se almacena copias de bloques de datos que se han recuperado de archivos de datos lo que permite grandes mejoras de rendimiento al obtener y actualizar datos, esto lo realiza gestionado un algoritmo LRU, el tamaño del bloque primario está determinado por DB_BLOCK_SIZE.
21.
22. DB_KEEP_CACHE_SIZE: Establece el tamaño de la caché de buffers KEEP, que se utiliza para retener en memoria bloques que probablemente se van a reutilizar
23.
24.
25.
26. DBWn (Escritor de Base de Datos) El proceso de servidor registra los cambios que hay que deshacer y los bloques de datos en la caché de buffers de base de datos. El proceso DBWn escribe los buffers sucios desde la caché de buffers de base de datos en los archivos de datos. Esto asegura que hay un número suficiente de buffers libres (buffers que se pueden sobrescribir cuando los procesos de servidor necesiten leer bloques en los archivos de datos) disponibles en la caché de buffers de base de datos. De esta manera, se mejora el rendimiento de la base de datos porque los procesos de servidor sólo realizan cambios en la caché de buffers de base de datos. DBWn aplaza la escritura en los archivos de datos hasta que se produce uno de los siguientes eventos: • Punto de control normal o incremental. • El número de buffers sucios alcanza un valor umbral. • Un proceso explora un número determinado de bloques cuando realiza una exploración en busca de buffers libres y no puede encontrar ninguno. • Se produce un timeout. • Se produce una solicitud de sondeo en un entorno RAC (Real ApplicationClusters). • Se coloca un tablespace normal o temporal offline • Se coloca un tablespace en modo de sólo lectura • Borrado o truncamiento de una tabla • ALTER TABLESPACE nombre del tablespaceBEGINBACKUP
27. LGWR (Escritura de Logs) LGWRrealiza escrituras secuenciales desde el buffer de redo log al archivo redo log en las siguientes situaciones: • Cuando se valida una transacción. • Cuando el buffer de redo log se encuentra a un tercio de su capacidad. • Cuando existe más de un megabyte de cambios en el buffer de redo log. • Antes de que DBWn escriba los bloques modificados de la caché de buffers de base de datos en los archivos de datos. • Cada tres segundos. Puesto que es necesario rehacer los cambios para la recuperación, LGWR sólo confirmará la operación de validación (COMMIT) una vez que se haya escrito el redo en el disco. LGWR también puede llamar al proceso DBWn para escribir en los archivos de datos.
28.
29. Abre la base de datos para que acceda el usuario.
32. Libera los segmentos temporales PMON (Monitor de Procesos) Hace una limpieza cuando los procesos han fallado: • Haciendo un rollback en las transacciones • Liberando los bloqueos • Liberando otros recursos • Reiniciando distribuidores interrumpidos El proceso en segundo plano PMON realiza una limpieza después de los procesos fallidos de la siguiente forma: • Realizando rollback en la transacción actual del usuario • Liberando todos los bloqueos de tablas o filas actuales • Liberando otros recursos que están reservados en ese momento por el usuario • Reiniciando distribuidores interrumpidos
33. CKPT (Punto de Control) Los puntos de control se inician por los siguientes motivos: • Para garantizar que los bloques de datos modificados en la memoria se escriben en el disco con frecuencia, de forma que no se pierdan en caso de que se produzca el fallo de un sistema o de una base de datos. • Para reducir el tiempo necesario de recuperación de una instancia. Para la recuperación, sólo es necesario procesar las entradas del archivo redo log online posteriores al último punto de control. • Para garantizar que todos los datos validados se han escrito en los archivos de datos durante el cierre. La información de punto de control que escribe el proceso CKPT incluye la posición del punto de control, el número de cambio del sistema, la ubicación en el archivo redo log online desde la que iniciar la recuperación, la información sobre logs, etc. Nota: CKPT no escribe bloques de datos en el disco ni bloques de redo en los archivos redo log online.
34. ARCn (Archiver) Es un proceso en segundo plano opcional, no obstante, es crucial para recuperar una base de datos después de la pérdida de un disco. Cuando se llena un archivo redo log online, Oracle Server comienza a escribir en el siguiente. Archivado de los Archivos Redo Log Online: Una de las decisiones importantes que debe tomar un DBA es si debe configurar la base de datos para que funcione en modo ARCHIVELOGo en modo NOARCHIVELOG. Modo NOARCHIVELOG: En este modo, los archivos redo log online se sobrescriben cada vez que se produce un cambio de log. Estructura Lógica. Existe la siguiente jerarquía de estructuras lógicas: • Una base de datos Oracle contiene como mínimo un tablespace. • Un tablespace contiene uno o más segmentos. • Cada segmento está formado por extensiones. • Una extensión está formada por bloques lógicos. • Un bloque es la unidad más pequeña para las operaciones de lectura y escritura.
35.
36. Cada tablespace está formado por uno o más archivos del sistema operativo, que reciben el nombre de archivos de datos, puede tener uno o más segmentos.
37. Se pueden poner en línea mientras se está ejecutando la base de datos.
38.
39.
40. Un segmento no puede abarcar tablespaces; sin embargo, un segmento puede abarcar múltiples archivos de datos que pertenezcan al mismo tablespace.
41.
42. Cuando se crea un segmento, éste está formado, como mínimo, por una extensión.
43.
44. Un bloque de datos se corresponde con uno o más bloques del sistema operativo asignados desde un archivo de datos existente.
45. El tamaño de bloque de datos estándar de cada base de datos Oracle lo especifica el parámetro de inicialización DB_BLOCK_SIZEcuando se crea la base de datos.
46. El tamaño del bloque de datos debería ser múltiplo del tamaño del bloque del sistema operativo para evitar operaciones de E/S innecesarias. FUENTE: FOLLETO DE LA UNIVERSIDAD ISRAEL. Administración de Base de Datos . Arquitectura BD .Capitulo 1. Págs. 2 - 32