AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 189027
Accepted
akkarin
akkarin
Asked: 2017-10-23 02:34:53 +0800 CST2017-10-23 02:34:53 +0800 CST 2017-10-23 02:34:53 +0800 CST

在 Linux 上设置 Oracle XE

  • 772

我正在尝试在我的 Linux 机器上设置 oracle-xe。我只需要一个环境来玩 Oracle SQL;这不是用于生产。

当我尝试启动 SQLPLUS 时,我不断收到以下错误之一:

ORA-12541: TNS:no listener

ORA-28547: connection to server failed, probable Oracle Net admin error

有很多关于类似问题的帖子,但即使在尝试了许多不同的“解决方案”之后,我仍然迷路了。

我可能做错了一些可怕的事情。请参阅以下输出:

[oracle@roshan ~]$ whoami
oracle
[oracle@roshan ~]$ pwd
/usr/lib/oracle
[oracle@roshan ~]$ echo $ORACLE_HOME
/usr/lib/oracle/product/11.2.0/xe
[oracle@roshan ~]$ echo $ORACLE_SID
PLSExtProc
[oracle@roshan ~]$ cat product/11.2.0/xe/network/admin/tnsnames.ora 
# tnsnames.ora Network Configuration File:

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

SQL_AUTHENTICATION_SERVICES = (NONE)
[oracle@roshan ~]$ product/11.2.0/xe/bin/lsnrctl start    

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 22-OCT-2017 12:24:03

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

TNS-01106: Listener using listener name LISTENER has already been started
[oracle@roshan ~]$ product/11.2.0/xe/bin/lsnrctl status

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 22-OCT-2017 12:24:07

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.2.0 - Production
Start Date                22-OCT-2017 12:21:18
Uptime                    0 days 0 hr. 2 min. 48 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /usr/lib/oracle/product/11.2.0/xe/network/admin/listener.ora
Listener Log File         /usr/lib/oracle/diag/tnslsnr/roshan/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=roshan.localdomain)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@roshan ~]$ sqlplus SYSTEM/foobar@localhost:8080/PLSExtProc


SQL*Plus: Release 12.2.0.1.0 Production on Sun Oct 22 12:24:14 2017

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

ERROR:
ORA-12541: TNS:no listener


Enter user-name: %                                                              [oracle@roshan ~]$ sqlplus SYSTEM/foobar@localhost:1521/PLSExtProc


SQL*Plus: Release 12.2.0.1.0 Production on Sun Oct 22 12:24:27 2017

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

ERROR:
ORA-28547: connection to server failed, probable Oracle Net admin error


Enter user-name: %   
[oracle@roshan ~]$ su
Password: 
[root@roshan oracle]# /etc/rc.d/oracle-xe status

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 22-OCT-2017 12:32:06

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.2.0 - Production
Start Date                22-OCT-2017 12:21:18
Uptime                    0 days 0 hr. 10 min. 47 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /usr/lib/oracle/product/11.2.0/xe/network/admin/listener.ora
Listener Log File         /usr/lib/oracle/diag/tnslsnr/roshan/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=roshan.localdomain)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully

这些看起来有什么不对吗?

oracle oracle-11g
  • 2 2 个回答
  • 1014 Views

2 个回答

  • Voted
  1. Best Answer
    EdStevens
    2017-10-23T04:44:10+08:002017-10-23T04:44:10+08:00

    1) 您应该将 ORACLE_SID 设置为“xe”,而不是“PLSExtProc”。“PLSExtProc”是外部过程的特例。在超过 25 年的时间里,我从来没有理由使用它。

    2) 当你像这样调用 sqlplus 时:

    sqlplus username/password
    

    您正在调用进程间连接,并绕过所有网络问题,包括侦听器。侦听器仅涉及网络上的请求。

    当你像这样调用 sqlplus 时:

    sqlplus username/password@mydb
    

    您正在调用网络连接,详细信息可从 tnsnames.ora 文件中的“mydb”条目中解析

    当您像这样调用 sqlplus 时(如@Balazs Papp 所建议)

    sqlplus username/password@localhost:1521:xe
    

    您正在调用网络连接,但绕过 tnsnames.ora 的使用并直接提供关键信息(主机名、端口、sid)。并不是所有三个元素都必须与“lisnrctl status”报告的内容相匹配。在您的情况下,主机不是“localhost”,而是“roshan.localdomain”。

    您的客户端(sqlplus)和数据库在同一台机器上这一事实并不重要。如果您使用调用网络连接的语法,请求仍会通过所有网络协议。

    您可以在http://edstevensdba.com/category/oracle-tns/和http://edstevensdba.com/category/oracle-listener/阅读更多关于 oracle 如何处理网络连接的信息

    • 2
  2. Balazs Papp
    2017-10-23T02:39:30+08:002017-10-23T02:39:30+08:00

    侦听器侦听默认端口:1521。您正在尝试使用端口 8080 登录。

    而不是这个:

    sqlplus SYSTEM/foobar@localhost:8080/PLSExtProc
    

    尝试这个:

    sqlplus SYSTEM/foobar@localhost:1521/XE
    

    APEX 使用端口 8080,你可以从浏览器登录那里。

    • 1

相关问题

  • Oracle 中的数据库备份 - 导出数据库还是使用其他工具?

  • ORDER BY 使用文本列的自定义优先级

  • 舒服的sqlplus界面?[关闭]

  • 如何在数据库中找到最新的 SQL 语句?

  • 如何使用正则表达式查询名称?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve