ORA-01034:ORACLE在远程连接上不可用

时间:2019-07-10 06:22:00

标签: oracle oracle12c

当我尝试从远程主机(使用oracle Instant Client)连接到Oracle数据库时,出现以下错误:

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_HOMEORACLE_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 :(得分:0)

这可能由于两个原因而发生。 1)Oracle数据库未正确启动。 2)没有剩余空间,数据库崩溃/停止工作。

要更正,请登录到远程数据库,并检查数据库是否已启动,并且有足够的空间供数据库执行操作。

要检查数据库是否打开,请在安装db的远程计算机上使用sql plus登录并运行查询以检查数据库状态。

答案 1 :(得分:0)

您的环境中设置的ORACLE_SID仅与本地连接有关。该错误告诉您在运行SQL * Plus的计算机上没有使用该SID运行的数据库。它不了解远程数据库。

要进行远程连接,您需要告诉SQL * Plus如何访问远程数据库,通常是通过TNS条目或使用'easy connect' syntax

您尚未包含远程数据库的任何详细信息,但是您需要执行以下操作:

sqlplus username@//database_host:listener_port/remote_service_name

或者以sqlplus /nolog开头,然后使用connect命令,如文档所示。

端口通常为1521,但可能有所不同,服务名称​​可能与SID相同。如果您在数据库服务器上运行lsnrctl serviceslsnrctl status,则应该能够看到有效的服务名称以及侦听器正在使用的地址和端口。