Запуск нескольких экземпляров на одном сервере возможен, а в некоторых случаях необходим. Oratab разработан специально для управления несколькими экземплярами. В тех случаях, когда у вас есть несколько независимых приложений, может быть предпочтительнее иметь экземпляр для каждого приложения.
Наличие достаточного объема памяти имеет решающее значение. Oracle строит SGA в разделяемой памяти. Если у вас недостаточно памяти, SGA или процессы начнут включаться и выключаться. Это известно как избиение и приводит к значительному снижению производительности.
Может быть возможно настроить экземпляры для запуска с меньшим SGA. Oracle предоставляет инструменты для настройки размера SGA. Если какой-либо из экземпляров имеет слишком большой SGA, он будет наказывать все экземпляры.
Другое использование для памяти, которая важна, является буферным пространством. Это действует как вторичный кеш и может устранить значительные операции чтения-ввода-вывода.
Выполнение sar
(при условии, что Unix base O / S) может дать вам хорошую диагностику того, где проблема. Вероятные проблемы - это подкачка или насыщение дискового ввода-вывода. Добавление оперативной памяти, вероятно, решит любую из этих проблем.
С насыщением дискового ввода-вывода можно также справиться, переместив некоторые табличные пространства на другие диски. Обычно я настраиваю Oracle так, чтобы ввод-вывод распределялся по максимально возможному количеству дисков.
РЕДАКТИРОВАТЬ: Это несколько случаев, которые могут потребовать отдельных экземпляров.
- Это всегда необходимо, если вы используете разные версии Oracle на одном сервере. Приложения не всегда сертифицированы или способны работать с последней версией.
- Возможно, вам понадобятся экземпляры, которые можно автоматически откатить к моменту времени. (Хотя я не одобряю это, я использовал это для автоматизированной среды тестирования.)
- Если у вас есть жестко запрограммированная ссылка на схему в приложениях, вам могут потребоваться разные экземпляры для обработки коллизий пространства имен.
- Требования безопасности могут быть легче иметь дело с использованием отдельных экземпляров. В этом случае может быть целесообразно использовать разные серверы.
- Запускать разные версии одной и той же базы данных (разработка, тестирование, принятие пользователей, обучение и производство) на одном и том же сервере безопаснее с отдельными экземплярами. Я бы не запускал все эти среды на одном сервере, но часто запускал два или более на одном сервере.