Страницы

Поиск по вопросам

вторник, 5 февраля 2019 г.

Ошибка после установки на Ubuntu ORA-27101: shared memory realm does not exist

SQL*PLUS выдаёт ошибку:
ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux-x86_64 Error: 2: No such file or directory Process ID: 0 Session ID: 0 Serial number: 0
При старте БД:
sudo service oracle-xe start Starting Oracle Net Listener. Starting Oracle Database 11g Express Edition instance. Failed to start Oracle Net Listener using /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr and Oracle Express Database using /u01/app/oracle/product/11.2.0/xe/bin/sqlplus.
Ставила по этой инструкции Но пропустила шаг:
sudo rm -rf /dev/shm sudo mkdir /dev/shm
потому, что при простой замене имени каталога /dev/shm у меня пропал интернет. Просто так удалять системные файлы, боязно. Теперь не могу удалить /dev/shm, т.к. он занят.


Ответ

Сообщение об ошибке:
ORA-27101: shared memory realm does not exist
означает, что процесс (обычно listener, sqlplus) не может подсоединится к System Global Area (SGA).
В основном две причины:
SGA действительно не существует, так как инстанция БД не стартовала. Стартуйте инстанцию БД под пользователeм oracle
$ echo startup|sqlplus / as sysdba Shared memory segment Id для подключения к SGA генерируется из значений переменных окружения: $ORACLE_SID + $ORACLE_HOME. Если эти значения не соответствуют тем, которые были использованы при запуске инстанции БД, то будет выше указаная ошибка, так как такого сегмента не существует. Проверте переменные окружения:
env | egrep -i "oracle_(sid|home)"
Значения $ORACLE_SID + $ORACLE_HOME, которые были использованы при установке хранятся в /etc/oratab и устанавливаются так:
export ORACLE_SID=orcl; . oraenv
Например, если попытаться установить вручную и ошибиться:
$ echo exit|sqlplus -l user/pass
Connected to: Oracle Database 11g Release 11.2.0.1.0 - Production
$ ORACLE_HOME=$ORACLE_HOME/; test -d $ORACLE_HOME && echo "directory exists" directory exists
Всё хорошо, директория существует и sqlplus из неё будет вызываться, но незначащий слэш даст при подсчёте shmid другое значение:
$ echo exit|sqlplus -l user/pass
ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No such file or directory

Комментариев нет:

Отправить комментарий