ORA-01034: ORACLE недоступен ORA-27101: область общей памяти не существует - PullRequest
37 голосов
/ 02 июля 2011

Я получаю вышеуказанную ошибку при попытке подключиться к базе данных сервера от клиента, используя имя службы orcl.Он подключается, когда я использую другое имя службы, т.е. dms

Ниже мой listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = dms)
      (SERVICE_NAME = dms)
      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
#      (PROGRAM = extproc)
    )
  (SID_DESC =
     (SID_NAME = orcl)
     (SERVICE_NAME = dms)
    # (GLOBAL_DBANME = orcl)
      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
   #  (PROGRAM = extproc)
  )
  )


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.53)(PORT = 1521))

    )
  )

ADR_BASE_LISTENER = /home/oracle/app/oracle
and tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.53)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
     #(SERVICE_NAME = orcl.localdomain)
      (ORACLE_SID = dms)
      (SERVICE_NAME = orcl)
    )
  )

DMS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.53)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dms)
      (ORACLE_SID = dms)
    )
  )

Скажите, пожалуйста, что мне делать?

Ответы [ 12 ]

59 голосов
/ 11 сентября 2014

Откройте командную строку и выполните следующие команды:

set oracle_sid=DATABASE NAME
sqlplus /nolog
conn sys/sys as sysdba
shutdown abort
startup
19 голосов
/ 16 сентября 2014

Некоторое время.База данных не будет правильно подключена, поэтому нам нужно смонтировать ее вручную ... Для этого выключите ее и запустите, а затем подключите .... Выполните следующие команды

войдите как пользователь oracle, затем

'sqlplus / as sysdba;'
'shutdown immediate;'
'startup nomount;'
'alter database mount;'
'alter database open;'
5 голосов
/ 28 февраля 2012

Убедитесь, что ваши ORACLE_HOME и ORACLE_SID верны Чтобы увидеть текущие значения в окнах, введите в командной строке

echo %ORACLE_HOME%

Тогда

echo %ORACLE_SID%

Если значения не являются вашим текущим домом оракула и SID, вам нужно исправить их. Это можно сделать в переменных среды Windows.

Проверьте эту страницу для получения дополнительной информации

2 голосов
/ 04 февраля 2019

Выполнить в cmd:

sqlplus / as sysdba;

Затем:

SQL> create pfile='c:/init.ora' from spfile;

Удалить sga_target строку в файле init.ora, затем:

SQL> create spfile from pfile='c:/init.ora';
SQL> startup;
2 голосов
/ 02 сентября 2017

Эта же ошибка произошла со мной, даже если казалось, что ORACLE_HOME и ORACLE_SID установлены правильно.

Проблема была в ORACLE_HOME, который не должен заканчиваться символом косой черты. Когда я удалил завершающий слеш, он начал работать правильно.

## WRONG !!!
export ORACLE_HOME=/usr/local/oracle/11gR2/

## CORRECT
export ORACLE_HOME=/usr/local/oracle/11gR2

Итак, даже если кажется, что все настроено нормально, проверьте ваши переменные для этого.

2 голосов
/ 30 мая 2017
SQL> sqlplus "/ as sysdba"
SQL>startup
Oracle instance started
------
Database mounted.
Database opened.
Quit
[oracle@hcis ~]$ lsnrctl start
2 голосов
/ 27 декабря 2016

Была такая же проблема на Windows XP. Решено. Ошибка была вызвана переполнением системного журнала. Панель управления -> Администрирование -> Просмотр событий Щелкните правой кнопкой мыши журнал приложений, очистите все события, при необходимости сохраните журнал. Тот же процесс для системного журнала. Перезапустите, и оно должно работать.

2 голосов
/ 03 октября 2015

Я столкнулся с той же проблемой при создании соединения на SQLDeveloper "ORA-01034: ORACLE недоступен ORA-27101: область общей памяти не существует"

Решение:

1. Обновлениефайл listene.ora для включения SID.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc) (ORACLE_HOME = C: \ oraclexe \ app \ oracle \ product \ 11.2.0 \ server) (PROGRAM = extproc)) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C: \ oraclexe\ app \ oracle \ product \ 11.2.0 \ server) (PROGRAM = extproc)) (SID_DESC = ((GLOBAL_DBNAME = XE.DB) ((ORACLE_HOME = C: \ oraclexe \ app \ oracle \ product \ 11.2.0 \ server) ((SID_NAME = XE)))

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP) (HOST = USMUMTBALAKDAS2.us.deloitte.com) (PORT = 1521))))

DEFAULT_SERVICE_LISTENER = (XE)

Для каталога Oraclexe может быть установлено разрешение " ReadOnly ", измените разрешение каталога / подкаталога на чтение / запись и перезапуститеуслуги слушателя.Проблема решена.

Счастливого кодирования!Ура !!

2 голосов
/ 02 июля 2011

ORA-01034 и ORA-27101 обычно указывают, что экземпляр базы данных, к которой вы пытаетесь подключиться, выключен и что вы не подключены как пользователь, у которого есть разрешение на его запуск.Войдите на сервер 192.168.1.53 и запустите экземпляр orcl или попросите своего администратора базы данных сделать это за вас.

1 голос
/ 03 августа 2016

Я столкнулся с тем же симптомом shared memory realm does not exist (в Windows), но по другой причине.Я только что установил Oracle (XE) и после некоторого устранения неполадок установил, что моя установка была повреждена из-за присутствия свойства среды ORACLE_HOME во время его установки.

Если это TLDR, пропуститена 'Чтобы решить:'!

Моим первоначальным симптомом было:

Message 850 not found; No message file for product=NETWORK, facility=NL

Очевидно, что установка Windows считывает ORACLE_HOME из реестра и не нуждается (и, конечно, вв моем случае не должно быть ...) свойства среды.

Удалите его следующим образом:

  1. Отредактируйте настройки среды системы (ключ Windows и начните вводить 'env' идолжна появиться эта опция.
  2. Удалите все переменные среды пользователя и системы, которые называются ORACLE_HOME, если они есть. (запишите их значения, в основном из интереса, но они могут быть полезны, если вы хотите поместитьпо какой-то причине они возвращаются!)
  3. Перезагрузите компьютер. Не пытайтесь просто выйти из системы - перезагрузите компьютер. При установке Windows Oracle используется служба Windows.s по умолчанию, и ваша установка в настоящее время очень плохая - требуется перезапуск.

После перезапуска я смог получить сообщения об ошибках, отличных от «Нет файла сообщения ...», и мог начать поискв чем проблема была.Установив ORACLE_SID в XE и подключив @XE, я получил сообщения об ошибках на этой странице, а именно о следующих симптомах:

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

Еще одним симптомом было: При запуске страницы «Начало работы» не удалось подключиться, выдавая ошибку «не найдено» (если я правильно помню), несмотря на то, что запущены службы прослушивателя Windows и XE.Как отмечено в другом ответе, это может быть связано с тем, что службы Windows не запускаются.В моем случае эти службы были запущены, поэтому что-то еще было неправильно настроено.

В этот момент я подумал, что, возможно, моя установка просто так сильно ошиблась из-за наличия моего плохого свойства среды ORACLE_HOME, которое я должен переустановить.(Предыдущие переустановки не помогли, но все они были до того, как я заметил свойство системной среды ORACLE_HOME (вероятно, настроенное мной год назад!).

Итак, чтобы решить:

  1. Закройте все приложения, просматривая каталог установки Oraclexe (запросы editors / explorer / cmd)
  2. Быстрый переход к установке и удалению программ и удалению OracleXe
  3. Double-проверьте, что у вас нигде не установлено свойство среды ORACLE_HOME, помните - Windows будет использовать записи реестра для его получения.
  4. Перезапустите (не рискуйте - мы в этом надолго!)
  5. Вы удостоверились, что не было никакого свойства ORACLE_HOME?
  6. Запустите установщик Oracle снова (как учетная запись локального администратора, если применимо)
  7. Вы должны быть в состоянии радоваться рабочей установке.минимум!
...