2016-03-06 148 views
0

我在Linux Mint 17.3系统上安装了适用于Linux x64的Oracle数据库Express Edition 11g第2版。安装过程很成功。我能够使用sqlplus连接到数据库,创建新用户,执行命令等。 在安装时配置数据库时,我使用了默认端口,即8080和1521. 但我无法连接到APEX url ie localhost:8080/apex/f?p = 4950从我的系统。我一直在寻找过去几个小时的解决方案,并且找不到任何地方。无法连接到Linux中的Oracle 11g XE Apex Web界面Mint

LSNRCTL命令的输出是如下:

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 06-MAR-2016 10:11:05 

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    06-MAR-2016 08:58:41 
Uptime     0 days 1 hr. 12 min. 24 sec 
Trace Level    off 
Security     ON: Local OS Authentication 
SNMP      OFF 
Default Service   XE 
Listener Parameter File /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora 
Listener Log File   /u01/app/oracle/diag/tnslsnr/iamharish15-HP-15-Notebook-PC/listener/alert/log.xml 
Listening Endpoints Summary... 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE))) 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=iamharish15-HP-15-Notebook-PC)(PORT=1521))) 
Services Summary... 
Service "PLSExtProc" has 1 instance(s). 
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... 
The command completed successfully 

我没有修改任何的tnsnames.ora或listener.ora中的。下面列举一下这些文件读起来像: 的listener.ora

# listener.ora Network Configuration File: 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = PLSExtProc) 
     (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe) 
     (PROGRAM = extproc) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = iamharish15-HP-15-Notebook-PC)(PORT = 1521)) 
    ) 
) 

DEFAULT_SERVICE_LISTENER = (XE) 

的tnsnames.ora

# tnsnames.ora Network Configuration File: 

XE = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = iamharish15-HP-15-Notebook-PC)(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) 
    ) 
) 

当我使用连接到XE如下启动SQL命令行和登录:

SQL> connect username/p[email protected] 
ERROR: 
ORA-12514: TNS:listener does not currently know of service requested in connect 
descriptor 

但通常从终端,如果我连接使用sqlplus username/password我连接成功。 我想我必须得到XEXEXDB服务才能运行,但到目前为止我还没有办法。在这方面的任何帮助将是非常有帮助的。提前致谢。

+0

请看看:http://www.zyxware。com/articles/2008/12/24/oracle-xe-solution-to-can-access-http-127-0-0-1-8080apex-errors –

+0

我不认为它适用于我的情况。在我的情况下,没有更改IP,此外,'lsnrctl status'不返回错误/失败消息。但是它没有'(DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 8080))(Presentation = HTTP)(Session = RAW))'我觉得有一些事情需要做这个'XE'服务没有运行导致apex web界面不可用。但我不知道如何解决这个问题,我不想搞乱一切,只是为了解决尖端的问题。 – iamharish15

回答

2

经过数小时的“谷歌搜索”和一些“兴奋”,我终于可以解决我的问题。这是我做过什么来解决我的问题:

  1. alter system set local_listener = '(ADDRESS=(PROTOCOL=TCP)(HOST=iamharish15-HP-15-Notebook-PC)(PORT=1521))' scope = both;

步骤#1解决XE和XEXDB服务不显示的问题,之后,当我跑lsnrctl status都XE和XEXDB服务进行展示我可以使用命令行SQL工具与username/[email protected]命令登录。但是APEX Web界面仍然不可用。

  1. 然后,我更新了tnsnames.ora和listener.ora文件,使其具有XEXDB条目和具有Presentation = HTTP行的DESCRIPTION条目。

的tnsnames.ora

# tnsnames.ora Network Configuration File: 

XE = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = iamharish15-HP-15-Notebook-PC)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = XE) 
    ) 
) 

XEXDB = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 8080)) 
    ) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = XEXDB) 
    ) 
) 

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

的listener.ora

# listener.ora Network Configuration File: 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = PLSExtProc) 
     (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe) 
     (PROGRAM = extproc) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = iamharish15-HP-15-Notebook-PC)(PORT = 1521)) 
    ) 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 8080))(Presentation = HTTP)(Session = RAW) 
    ) 
) 

DEFAULT_SERVICE_LISTENER = (XE) 

之后,我使用下面的命令重新装载它们的值:

/etc/init.d/oracle-xe force-reload 

这解决了这个问题,我可以连接到APEX网页界面,并创建新的工作区,用户等。