当我尝试从远程主机(我使用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_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发布于 2019-07-10 17:12:11
这可能是由于两个原因造成的。1) Oracle数据库启动不正确。2)没有剩余空间,数据库崩溃/停止工作。
要更正此错误,请登录到远程数据库并检查数据库是否已启动,以及是否有足够的空间供数据库执行操作。
在安装了db的远程机器上,要检查数据库是否打开,可以使用sql plus登录并运行query来检查数据库的状态。
发布于 2019-07-10 17:50:41
在您的环境中设置ORACLE_SID只与本地连接相关。该错误告诉您,在运行SQL*Plus的计算机上没有使用该SID运行的数据库。它不知道远程数据库的情况。
要远程连接,您需要告诉SQL如何访问远程数据库,这通常是通过TNS entry或使用'easy connect' syntax。
您尚未包含远程数据库的任何详细信息,但您需要执行以下操作:
sqlplus username@//database_host:listener_port/remote_service_name或者从sqlplus /nolog开始,然后使用connect命令,如文档所示。
端口通常是1521,但可能不同,并且服务名称可能与SID相同。如果在DB服务器上运行lsnrctl services或lsnrctl status,您应该能够看到有效的服务名称,以及侦听器正在使用的地址和端口。
https://stackoverflow.com/questions/56964464
复制相似问题