首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在ubuntu上连接Oracle数据库服务,ORA-27101:共享内存域不存在

无法在ubuntu上连接Oracle数据库服务,ORA-27101:共享内存域不存在
EN

Stack Overflow用户
提问于 2020-12-31 21:22:31
回答 1查看 75关注 0票数 0

我得到了一台装有ubuntu 16.04的linux服务器,并成功地在上面安装了oracle 11gR2。在系统引导之后,我可以使用下面的代码启动oracle并执行一个简单的查询:

代码语言:javascript
复制
db@dbpc:~$ sudo lsnrctl start
db@dbpc:~$ sqlplus /nolog
SQL> conn / as sysdba
SQL> startup

SQL> select * from scott.dept;

    DEPTNO DNAME      LOC
---------- -------------- -------------
    10 ACCOUNTING     NEW YORK
    20 RESEARCH   DALLAS
    30 SALES      CHICAGO
    40 OPERATIONS     BOSTON

然而,我无法通过IP登录,例如,如果我使用以下命令:(在启动孔服务之后)

代码语言:javascript
复制
db@dbpc:~$ sqlplus scott/123456@192.168.1.100:1521/orcl

它将显示:

代码语言:javascript
复制
SQL*Plus: Release 11.2.0.4.0 Production on Thu Dec 31 12:58:42 2020

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

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

下面是我的设置文件:

代码语言:javascript
复制
db@dbpc:/home/rogear/tools/oracle11g/product/11.2.0/dbhome_1/network/admin$ cat listener.ora 
# listener.ora Network Configuration File: /home/rogear/tools/oracle11g/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
  )
ADR_BASE_LISTENER = /home/rogear/tools/oracle11g



db@dbpc:/home/rogear/tools/oracle11g/product/11.2.0/dbhome_1/network/admin$ cat tnsnames.ora 
# tnsnames.ora Network Configuration File: /home/rogear/tools/oracle11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

怎么了?

EN

回答 1

Stack Overflow用户

发布于 2020-12-31 22:54:23

第一个错误是Oracle没有经过认证,也从来没有为Ubuntu设计过。Ubuntu来自linux家族的一个完全不同的分支。让甲骨文在它上面工作是一种黑客行为,除此之外,什么都不能保证。

还要注意,您的连接字符串(sqlplus scott/123456@192.168.1.100:1521/orcl)从不使用您的tnsnames.ora。要使用tnsnames.ora,您的连接字符串应为:

代码语言:javascript
复制
sqlplus scott/123456@orcl

其中'orcl‘是tnsname中条目的名称。

第三,我们不知道数据库实例的名称。我希望看到以下命令的输出

代码语言:javascript
复制
ls -l | grep pmon

第四,即使在支持的操作系统上,Oracle11也很旧,不再受支持。

如果您使用Ubuntu机器(使用Ubuntu的事实告诉我这是一台用于自学或在校的个人pc ),您最好的选择是安装Oracle VirtualBox,然后使用它创建一个运行最新版本的Oracle Linux的虚拟机,并在其上安装最新版本的Orcle。我在https://edstevensdba.wordpress.com/category/personal-test-systems/上有一篇关于这方面的文章,现在有点过时了

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65521451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档