在Ubuntu 18.04服务器上安装Oracle Express Ediion 18c-连接问题

在Ubuntu 18.04服务器上安装Oracle Express Ediion 18c-连接问题,express,installation,connection,ubuntu-18.04,oracle18c,Express,Installation,Connection,Ubuntu 18.04,Oracle18c,安装 数据库版本:Oracle 18c XE 在运行于Virtual Machine Manager内部的Ubuntu 18.04服务器上 问题 安装Oracle XE 18c后,我以用户Oracle的身份登录并启动侦听器 lsnrctl start 当我尝试连接时,存在以下问题: A.使用: sqlplus / as sysdba # listener.ora Network Configuration File: /opt/oracle/product/18c/dbhomeXE/ne

安装
数据库版本:Oracle 18c XE
在运行于Virtual Machine Manager内部的Ubuntu 18.04服务器上

问题
安装Oracle XE 18c后,我以用户Oracle的身份登录并启动侦听器

lsnrctl start
当我尝试连接时,存在以下问题:

A.使用:

sqlplus / as sysdba
  # listener.ora Network Configuration File: /opt/oracle/product/18c/dbhomeXE/network/admin/listener.ora  
  # Generated by Oracle configuration tools.  

DEFAULT_SERVICE_LISTENER = XE  

LISTENER =  
  (DESCRIPTION_LIST =  
    (DESCRIPTION =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = ubu-srv)(PORT = 1521))  
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  
    )  
  )  
  # tnsnames.ora Network Configuration File: /opt/oracle/product/18c/dbhomeXE/network/admin/tnsnames.ora  
  # Generated by Oracle configuration tools.  

LISTENER_XE =  
  (ADDRESS = (PROTOCOL = TCP)(HOST = ubu-srv)(PORT = 1521))  
=>

B.使用:

sqlplus oracle@ubu-srv as sysdba  
lsnrctl status 
=>

检查侦听器:

sqlplus oracle@ubu-srv as sysdba  
lsnrctl status 
=>

侦听器的内容。ora:

sqlplus / as sysdba
  # listener.ora Network Configuration File: /opt/oracle/product/18c/dbhomeXE/network/admin/listener.ora  
  # Generated by Oracle configuration tools.  

DEFAULT_SERVICE_LISTENER = XE  

LISTENER =  
  (DESCRIPTION_LIST =  
    (DESCRIPTION =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = ubu-srv)(PORT = 1521))  
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  
    )  
  )  
  # tnsnames.ora Network Configuration File: /opt/oracle/product/18c/dbhomeXE/network/admin/tnsnames.ora  
  # Generated by Oracle configuration tools.  

LISTENER_XE =  
  (ADDRESS = (PROTOCOL = TCP)(HOST = ubu-srv)(PORT = 1521))  
tnsnames.ora的内容:

sqlplus / as sysdba
  # listener.ora Network Configuration File: /opt/oracle/product/18c/dbhomeXE/network/admin/listener.ora  
  # Generated by Oracle configuration tools.  

DEFAULT_SERVICE_LISTENER = XE  

LISTENER =  
  (DESCRIPTION_LIST =  
    (DESCRIPTION =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = ubu-srv)(PORT = 1521))  
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  
    )  
  )  
  # tnsnames.ora Network Configuration File: /opt/oracle/product/18c/dbhomeXE/network/admin/tnsnames.ora  
  # Generated by Oracle configuration tools.  

LISTENER_XE =  
  (ADDRESS = (PROTOCOL = TCP)(HOST = ubu-srv)(PORT = 1521))  

数据库似乎没有运行,或者它没有向网络侦听器注册。如果数据库正在运行,则在运行“lsnrctl status”时,应该会看到列出的几个服务,如下所示:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost.example.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /opt/oracle/product/18c/dbhomeXE/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/dbhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbhost.example.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=dbhost.example.com)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/admin/XE/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "77f81bd10c818208e053410cc40aef5a" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "xepdb1" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully
您不需要为选项A运行侦听器,从同一主机连接,但需要设置ORACLE_SID环境变量以匹配要连接到的数据库(容器或可插拔数据库)的SID。要连接到容器数据库,以及手动启动所有数据库服务,您可以执行以下操作:

export ORACLE_SID=XE
sqlplus / as sysdba
对于选项B(通过网络连接),连接字符串的格式也不正确;除了主机名之外,它通常还应该包括一个服务名(最小值)。有关示例,请参见此处:


也就是说,Oracle没有通过Ubuntu Linux的认证,所以结果不能保证。您应该在CentOS、Red Hat或Oracle Linux上运行此功能。受支持的Linux版本的完整列表如下:

侦听器没有列出任何服务名称,因为数据库很可能根本没有运行。您必须具有要连接的服务名称;你以后不会明白的。非常感谢你详细的回答。我尝试了两个版本的sqlplus connect,如您所解释的。第一个on导致
错误:ORA-12547:TNS:lost contact
,第二个
ORA-12514:TNS:listener当前不知道连接描述符中请求的服务。我认为提示是
lsnrctlstatus=>侦听器不支持上面列出的服务。但我不知道下一步该做什么。启动数据库。它没有运行,因此没有可连接的内容。这就是为什么侦听器说没有注册任何服务。如果数据库本身无法启动,请使用受支持的操作系统(不是Ubuntu)并重新安装。我将继续尝试在Ubuntu 18.04上安装。。与此同时,我会让这个问题悬而未决。