ORA-01034: ORACLE недоступно при удаленном соединении - PullRequest
0 голосов
/ 10 июля 2019

Когда я пытаюсь подключиться к базе данных Oracle с удаленного хоста (я использую oracle Instant Client), я получаю следующие ошибки:

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3640
Additional information: 1108778635
Process ID: 0
Session ID: 0 Serial number: 0

Однако ORACLE_HOME на хост-компьютере установлен правильно,а также ORACLE_SID, и я могу легко подключиться к базе данных с ее хост-машины:

SQL*Plus: Release 12.1.0.2.0 Production on Wed Jul 10 09:20:09 2019

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

Enter user-name: system
Enter password:
Last Successful login time: Wed Jul 10 2019 09:13:57 +03:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

Что может вызвать такое поведение?UPD: состояние слушателя на удаленной БД:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.71.2)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                05-JUL-2019 08:56:16
Uptime                    6 days 23 hr. 29 min. 47 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/product/12.1.0/dbhome_1/log/diag/tnslsnr/epyc-gbu2/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.71.2)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "AGRO.GBUBDD.RU" has 1 instance(s).
Instance "AGRO", status UNKNOWN, has 1 handler(s) for this service...

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

sqlplus /nolog
connect system/oracle@192.168.71.2:1521/agro.gbubdd.ru

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Установка ORACLE_SID в вашей среде важна только для локальных соединений. Ошибка говорит о том, что на компьютере, на котором запущен SQL * Plus, нет базы данных с этим SID. Он не знает об удаленной БД.

Для удаленного подключения вы должны указать SQL * Plus, как получить доступ к удаленной БД, которая обычно либо через запись TNS, либо с использованием синтаксиса 'easy connect' .

Вы не включили никаких подробностей об удаленной БД, но вам нужно сделать что-то вроде:

sqlplus username@//database_host:listener_port/remote_service_name

Или начните с sqlplus /nolog, а затем используйте команду connect, как показано в документации.

Порт обычно 1521, но может отличаться, а имя службы может совпадать с SID. Если вы запустите lsnrctl services или lsnrctl status на сервере БД, вы сможете увидеть действительные имена служб, а также адрес и порт, который использует прослушиватель.

0 голосов
/ 10 июля 2019

Это может произойти по двум причинам. 1) База данных Oracle не запускается правильно. 2) Нет свободного места и база данных разбилась / перестала работать.

Чтобы исправить, войдите в удаленную базу данных и проверьте, работает ли база данных или нет, и есть ли достаточно места для базы данных для выполнения операций.

Чтобы проверить, открыта база данных или нет, на удаленном компьютере, на котором установлена ​​база данных, вы можете войти с помощью sql plus и выполнить запрос, чтобы проверить состояние базы данных.

...