Video: Tutorial OMNITUX 2025
La administración de memoria es un componente importante del trabajo con instancias en su base de datos. Oracle 12c le ofrece tres formas de administrar la memoria en su instancia:
-
Automáticamente permitiendo que Oracle haga todo el trabajo
-
Manualmente ajustando parámetros individuales para las diferentes áreas de memoria
-
Combinación de automática y manual utilizando su conocimiento de cómo funcionan las cosas, empleando la infraestructura de asesoramiento de Oracle y dejando que Oracle se haga cargo de algunas áreas
Una nota rápida sobre la automatización de Oracle. A través de los últimos lanzamientos de Oracle, la base de datos se ha vuelto más automatizada en áreas que antes eran manuales e incluso aburridas en ocasiones. Esto no quiere decir que pronto no se necesitará una habilidad especial para administrar una base de datos Oracle. Exactamente lo opuesto: cuando las operaciones más mundanas son automatizadas, lo libera como DBA para centrarse en las funciones más avanzadas.
Hemos tenido un gran éxito implementando funciones automáticas para nuestros clientes. Libera nuestros recursos para enfocarse en cosas como alta disponibilidad y seguridad, áreas que requieren atención cercana a tiempo completo. Gracias a Dios que no tiene que pasar horas mirando qué declaraciones SQL están envejeciendo fuera del grupo compartido prematuramente, lo que resulta en problemas de rendimiento.
Le recomendamos que administre la memoria automáticamente en Oracle 12c.
Cuando crea su base de datos, puede establecer un nuevo parámetro que elimine casi todas las pérdidas de memoria: MEMORY_TARGET. Al establecer este parámetro, todas las áreas de memoria se dimensionan y administran automáticamente. Después de escribir show parameter memory_target en SQL * Plus (la interfaz de línea de comandos SQL disponible en Oracle), verá esta salida en la pantalla:
NAME TYPE VALUE -------- ---------------------------- ----------- ----------- ------------------- memory_target big integer 756M
La administración automática de memoria le permite controlar la cantidad de memoria en el sistema y luego decidir cuánto desea usar para la base de datos.
Nunca es obvio qué valor debe elegir como punto de partida. Responda estas preguntas para ayudar a establecer el valor:
-
¿Cuánta memoria hay disponible?
-
¿Cuántas bases de datos estarán finalmente en la máquina?
-
¿Cuántos usuarios habrá en la máquina? (Si muchos, asigna 4 MB por usuario para la sobrecarga del proceso.)
-
¿Qué otras aplicaciones se están ejecutando en la máquina?
Antes de que los usuarios se suban a la máquina, considere tomar no más del 40 por ciento de la memoria para las bases de datos de Oracle.Use esta fórmula:
(GB de memoria ×.40) / Número de bases de datos eventuales = GB para MEMORY_TARGET por base de datos
Por ejemplo, si su máquina tiene 8 GB de memoria y finalmente albergará dos bases de datos de naturaleza similar y solo 100 usuarios cada uno, tendría esta ecuación: (8 ×.40) / 2 = 1. 6 GB para MEMORY_TARGET por base de datos.
Para ayudar a determinar si tiene suficiente memoria, Oracle le proporciona algunos indicadores si sabe dónde buscar. Se llama Memory Target Advisor. Encuéntrelo desde la línea de comando en la forma de la vista V $ MEMORY_TARGET_ADVICE. Puede encontrarlo en la página de inicio de Control de base de datos haciendo clic en Asesor central> Asesores de memoria> Asesoramiento.
Lo que elija para la configuración MEMORY_TARGET no es toda la memoria que usa Oracle. Es por eso que debes tener una idea de cuántas sesiones habrá antes de que hagas la determinación final.
Por ejemplo, este parámetro cubre solo la memoria utilizada por SGA y PGA. Cada sesión que se conecta a la base de datos requiere memoria asociada con su sistema operativo o proceso de servidor. Este requisito de memoria se suma. Uno de nuestros clientes tiene casi 3,000 conexiones simultáneas consumiendo alrededor de 16GB de memoria fuera de SGA y PGA. La máquina del cliente tiene 64 GB de memoria y MEMORY_TARGET está configurado en 16 GB.
