express - 在 Ubuntu 18.04 服务器上安装 Oracle Express Ediion 18c - 连接问题
问题描述
安装数据库版本:
在 Virtual Machine Manager 内运行的 Ubuntu 18.04 服务器上的
Oracle 18c XE
安装 Oracle XE 18c 后的问题
我以用户oracle身份登录并启动侦听器
lsnrctl start
当我尝试连接时,出现以下问题:
A. 使用:
sqlplus / as sysdba
=>
ERROR:
ORA-12547: TNS:lost contact
B. 使用:
sqlplus oracle@ubu-srv as sysdba
=>
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
检查监听器:
lsnrctl status
=>
LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 28-MAR-2020 22:05:40
Copyright (c) 1991, 2018, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ubu-srv)(PORT=1521)))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date 28-MAR-2020 21:28:33
Uptime 0 days 0 hr. 37 min. 6 sec
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/ubu-srv/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ubu-srv)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
listener.ora 的内容:
# 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 的内容:
# 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,通过网络连接,您的连接字符串也会出现格式错误;除了主机名之外,它通常还应包括一个服务名称(最少)。有关示例,请参见此处:https ://docs.oracle.com/en/database/oracle/oracle-database/18/sqpug/starting-SQL-Plus.html#GUID-A33231E7-9180-4544-A055-411209FD0363
sqlplus username@[//]host[:port][/service_name]
sqlplus pdb_admin@ubu-srv:1521/xepdb1
也就是说,Oracle 未通过 Ubuntu Linux 认证,因此无法保证结果。您应该在 CentOS、Red Hat 或 Oracle Linux 上运行它。支持的 Linux 版本的完整列表在这里:https ://docs.oracle.com/en/database/oracle/oracle-database/18/ladbi/operating-system-checklist-for-oracle-database-installation-on- linux.html#GUID-E5C0A90E-7750-45D9-A8BC-C7319ED934F0
推荐阅读
- d3.js - 使用 D3.js 将 Fontastic 图标附加到 SVG
- python-3.x - python列表中的数据
- jasmine - 测试用例单独运行时通过,但在组中运行时失败
- java - s3 select:如何获取镶木地板文件的列名?
- php - PHP:如何将新转换的ffmpeg文件保存到临时文件中
- python-3.x - 类型错误:更新()缺少 1 个必需的位置参数:“文档”
- amazon-s3 - 尽管获得了完全许可,但 aws iam 用户访问被拒绝
- r - 有没有办法用 R 中的包 sarima 来模拟具有趋势的数据?
- react-native-android - 为什么我不能在 react-native 中更改按钮的颜色
- angular - 尝试运行项目时在 ng serve 上显示错误