Es posible ejecutar varias instancias en el mismo servidor y, en algunos casos, es necesario. El oratab está diseñado específicamente para manejar la administración de múltiples instancias. En los casos en que tenga varias aplicaciones independientes, puede ser preferible tener una instancia para cada aplicación.
Tener suficiente memoria es crítico. Oracle construye el SGA en memoria compartida. Si no tiene suficiente memoria, el SGA o los procesos comenzarán a intercambiarse. Esto se conoce como golpear y da como resultado una penalización de rendimiento significativa.
Es posible ajustar las instancias para que se ejecuten con un SGA más pequeño. Oracle proporciona herramientas para ayudar a ajustar el tamaño de SGA. Si alguna de las instancias tiene un SGA excesivamente grande, penalizará todas las instancias.
Otro uso para la memoria que es importante es el espacio del búfer. Esto actúa como caché secundaria y puede eliminar la E / S de lectura significativa.
Ejecutar sar
(suponiendo que las bases de datos de Unix S / S) le puede dar buenos diagnósticos sobre dónde está el problema. Los problemas probables son el intercambio o la saturación de E / S del disco. Agregar RAM probablemente resolverá cualquiera de estos problemas.
La saturación de E / S de disco también se puede solucionar moviendo algunos espacios de tabla a otros discos. Generalmente configuro Oracle para que la E / S se distribuya en tantos discos como sea posible.
EDITAR: Estos son algunos casos que pueden requerir instancias separadas.
- Siempre es necesario si ejecuta diferentes versiones de Oracle en el mismo servidor. Las aplicaciones no siempre están certificadas o no son capaces de trabajar con la última versión.
- Es posible que desee instancias que se puedan revertir automáticamente a un punto en el tiempo. (Aunque lo desaconsejo, lo he usado para un entorno de prueba automatizado).
- Si tiene una referencia de esquema codificada en las aplicaciones, es posible que necesite diferentes instancias para lidiar con las colisiones de espacios de nombres.
- Los requisitos de seguridad pueden ser más fáciles de manejar usando instancias separadas. Puede ser apropiado usar diferentes servidores en este caso.
- Ejecutar diferentes versiones de la misma base de datos (desarrollo, prueba, aceptación del usuario, capacitación y producción) en el mismo servidor es más seguro con instancias separadas. No ejecutaría todos estos entornos en el mismo servidor, pero a menudo correría dos o más en el mismo servidor.