Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Ошибка ORA-27101: shared memory realm does not exist — решение проблемы

Обновлено: 26.08.2026  ·  Официальная база знаний
  • При попытке подключения клиент получает связку ошибок: ORA-01034: ORACLE not available и ORA-27101: shared memory realm does not exist.
  • Экземпляр СУБД выключен или находится в процессе падения.
  • Переменная окружения ORACLE_SID указана с ошибкой в регистре символов (case-sensitive в Linux).

1. Проверка регистра переменной ORACLE_SID в Linux

В Linux имя инстанса чувствительно к регистру букв (например, db1 и DB1 — разные сущности):

echo $ORACLE_SID
ps -ef | grep pmon

2. Запуск экземпляра базы данных

Если процесс PMON отсутствует, подключитесь как SYSDBA и запустите инстанс:

export ORACLE_SID=DB1
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
sqlplus / as sysdba

SQL> STARTUP;

3. Проверка параметров ядра Linux для разделяемой памяти (IPC)

В /etc/sysctl.d/99-oracle-shm.conf:

kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
sysctl --system

4. Проверка прав на бинарник oracle

chmod 6751 $ORACLE_HOME/bin/oracle
Практический опыт инженера: Если вы подключаетесь через TNS Listener и получаете ORA-27101, проверьте соответствие ORACLE_HOME в listener.ora и фактического каталога инстанса. Несовпадение путей приводит к поиску SGA в неверном пространстве IPC.

Частые вопросы (FAQ)

Что означает термин 'shared memory realm' в Oracle?

Это сегмент разделяемой памяти System V IPC или POSIX Shared Memory, выделенный ядром ОС под структуры System Global Area (SGA) конкретного экземпляра Oracle.

Почему ORA-27101 возникает, если база запущена?

Пользователь подключился с другим значением ORACLE_HOME или ORACLE_SID. Клиент пытается подключиться к сегменту памяти с другим хэш-ключом IPC, которого нет в системе.

Как посмотреть существующие сегменты разделяемой памяти в ОС?

Выполните команду ipcs -m или ipcs -u в терминале Linux.

Зачем нужны права 6751 (SUID) на файл bin/oracle?

Бит SUID необходим, чтобы обычные пользовательские процессы могли переключаться в контекст пользователя oracle и подключаться к общим сегментам памяти SGA.