Instalación de Oracle. Una posible configuración de memoria

Objetivo:

Se muestra una forma de distribuir la memoria del sistema en una nueva instalación de ORACLE.

La memoria de ORACLE

El total disponible de memoria en un sistema tiene que estar configurado de forma que todos los componentes de ese sistema funcionen óptimamente. Una pauta a seguir para que el sistema quede bien configurado podría ser el siguiente:

  1. Componentes del sistema
Memoria del Sistema
Oracle SGA Componentes ~ 50\% del total
Sistema operativo + Otros componentes ~15\% del total
Memoria de usuario ~ 35\% del total

Esta es la primera pauta que podemos seguir a la hora de reservar o ver la memoria que se necesita o que se puede poner cómo máximo en un sistema para que Oracle funcione correctamente y los demás componentes del sistema puedan hacerlo también. ( habría que tener en cuenta también el número de usuarios que accederán concurrentemente al sistema ).

  • Una vez que hemos decidido que la SGA de nuestra base de datos ORACLE va a ser el 50\% de la memoria total del sistema. Esta memoria la tenemos que dividir entre los componentes que la forman. (Database buffer cache, shared_pool_area, fixed size, redo log buffer)

    1. Componentes de la SGA
    Memoria SGA
    Database Buffer Cache ~80\% de la SGA
    Shared Pool Area ~12\% de la SGA
    Fixed Size ~1\% de la SGA
    Redo Log Buffer ~0.1\% de la SGA

    La distribución puede venir bien para comenzar a establecer un sistema, aunque posteriormente podrán variar (y habrá que realizar tuning de ellos ) cuando se conozca o varíen el tipo de acceso a la base de datos, los patrones de acceso, usuarios concurrentes en el sistema etc.

  • Para entender mejor estas tablas proponemos el siguiente ejemplo:
    Tengo un sistema configurado con 2 GB de memoria y con una estimación de 100 sesiones concurrentes. La aplicación requiere responder en pocos segundos. Es una base de datos que tiene muchas transacciones.

    1. Componentes del sistema
    Memoria asignada (en Mb)
    SGA para ORACLE ~1024
    Sistema operativo + Otros componentes ~306
    Memoria de usuario ~694

     

  • Los 694 MB estarán disponibles para la PGA y todos los procesos servidores de Oracle.
    Teniendo en cuenta que en el ejemplo hemos dicho que teníamos 100 sesiones concurrentes nos daría un promedio de unos 7 Megas (aproximadamente) para el consumo de cada usuario. (Tenemos que tener en cuenta que el SORT_AREA_SIZE forma parte de la PGA).

  • Por ultimo habría que distribuir la memoria que hemos dado a la SGA entre todos sus componentes.

    1. Componentes de la SGA
    Memoria asignada (en Mb)
    Database Buffer Cache ~800
    Shared Pool Area ~128 – 188
    Fixed Size + Misc ~ 8
    Redo Log Buffer ~ 1 (promedio 512K)

    Via | Orasite