2017-02-16 3 views
0

enter image description hereORA-01034: ORACLE не доступно ORA-27101: область разделяемой памяти не существует ORACLE 10g XE

не знаю, что пошло не так. Он работал отлично в первый раз, пока я не перезапустил свою машину.

+0

Является ли база данных настроена на автоматический запуск; или вы начали его вручную после перезагрузки? Или вы пытаетесь подключиться как sys для его запуска - в этом случае вы забыли часть 'sysdba'? –

+0

Кроме того, [пожалуйста, не используйте изображения, когда вы можете копировать и вставлять текст] (http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code -он-так когда-запрашиваемая-а-вопрос/285557 # 285557). –

+0

@AlexPoole - это обычно происходит, когда люди только что установили Oracle на Ubuntu (и, возможно, другие неподдерживаемые вкусы Linux). База данных запускается в конце процесса установки, и в ней можно работать - до тех пор, пока она не перезапустит ОС, после чего db не перезапустится автоматически. Чтобы быть полностью честным, я забыл сделать то, что я ввел в свой ответ ниже, когда я установил Oracle на Ubuntu некоторое время назад (к счастью, я вспомнил, что был шаг, который я пропустил ... вот что я вложил в ответ). – mathguy

ответ

0

Установить переменную окружения ORACLE_HOME и ORACLE_SID.

ORACLE_HOME=\<your path>\oracle\product\10.2.0\server 
ORACLE_SID=xe 

Obviusly Вы должны настроить базу данных для автоматического запуска.

Для этого вам необходимо установить флаг Y в YOURE например, в /etc/oratab и создать соответствующий /etc/init.d/dbora

+0

Если 'ORACLE_HOME' не был установлен или был неправильным, тогда SQL \ * Plus не запустился и сказал бы что-то вроде« Файл сообщения sp1 .msb not found ». Если 'ORACLE_SID' не был установлен, вы получите ошибку TNS. Вы можете получить ошибку OP, если SID был неправильным. Я думаю, что скорее всего, DB просто не работает после перезагрузки. –

+0

Если это была причина, OP не сможет запускать сеансы, прекращать их и запускать новые. Как он заявил, эта проблема возникла после перезагрузки компьютера. Почти наверняка из-за того, что база данных не запускается автоматически при перезагрузке. – mathguy

0

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

$ sqlplus /nolog 

SQL*Plus: Release 11.2.0.2.0 Production on Thu Feb 16 16:04:26 2017 

Copyright (c) 1982, 2010, Oracle. All rights reserved. 

SQL> connect sys/12345 
ERROR: 
ORA-01034: ORACLE not available 
ORA-27101: shared memory realm does not exist 
SVR4 Error: 2: No such file or directory 
Process ID: 0 
Session ID: 0 Serial number: 0 

С указанной роли он подключается к незанятости, например:

SQL> connect sys/12345 as sysdba 
Connected to an idle instance. 
SQL> 

Вы можете выдать команду startup.

Вы также можете подключить прямо из командной строки:

$ sqlplus/as sysdba 

SQL*Plus: Release 11.2.0.2.0 Production on Thu Feb 16 16:07:47 2017 

Copyright (c) 1982, 2010, Oracle. All rights reserved. 

Connected to an idle instance. 

SQL> 

введенный пароль для SYS может быть что угодно, так как она полагается на проверку подлинности ОС в любом случае. Вы должны предоставить роль, хотя. И заходите в ОС в качестве пользователя в правильной группе, конечно, и у вас есть $ORACLE_HOME и $ORACLE_SID правильно установлены и т. Д.

1

В дополнение к объяснениям Алекса, в частности, бит о базе данных не перезапускается автоматически, когда вы перезагрузите машину:

Перейдите к /etc/oratab и отредактируйте его как root.

Найти линии

orcl:/u01/app/oracle/product/12.1.0/db_1:N 

Измените N в самом конце, чтобы Y.

Это приведет к запуску базы данных при перезагрузке вашего компьютера, поэтому у вас не будет этой проблемы снова.

+0

Является ли 'rc.oracle' или' init.d/oracle' (или каким-либо эквивалентом Ubuntu), созданным автоматически для запуска 'dbstart', даже если флаг запуска в' oratab' равен Y? Если бы не OP, это тоже нужно было бы сделать. (И затем снова перезагрузитесь, если они не хотят запускать БД вручную на этот раз!) –

+1

@AlexPoole - это зависит от того, на чьем «руководстве» или «инструкциях» OP следуют, чтобы установить Oracle на Ubuntu. Когда я установил 12.1 на Ubuntu 16.04 (просто чтобы узнать, как это сделать), я большую часть времени выполняю 12.1 на своем ноутбуке Windows). Я следовал отличным инструкциям, доступным по адресу https://www.dizwell.com/wordpress/technical-articles/ oracle/install-oracle-12c-on-ubuntu-16-04/- у парня был скрипт, который создал почти все, что было необходимо, но для этого все еще требуется установить флаг перезапуска вручную. – mathguy

+0

Так что все-таки что-то OP * может * нужно вернуться и сделать, но достаточно справедливо, просто установить флаг может быть достаточно. –

0

Как "chkconfig" does not work now. Я попытался с помощью SYSV-RC-конф, но команда не найдена: тогда, я попытался APT-получить установку SysV-RC-конф , но затем показывает E: Не удалось найти пакет SYSV-RC-конф

{ Я пытался настроить файл "/etc/init.d/dbora", чтобы моя база данных автоматически запускалась. }

+0

http://www.uni.edu/~prefect/devel/chkconfig/index.shtml Получил пакет chkconfig из приведенной выше ссылки. извлеките файл и вставьте его в/etc/bin, измените часть разрешения (описано в разделе README) –

0

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

Обратите внимание: переменная ORACLE_HOME не должна заканчиваться символом косой черты. Таким образом, несмотря на то, что кажется, что все настроено отлично, конечная косая черта в значении ORACLE_HOME приведет к проблеме тоже:

# wrong: 
export ORACLE_HOME=/usr/local/oracle/11gR2/ 

# correct: 
export ORACLE_HOME=/usr/local/oracle/11gR2 
Смежные вопросы