1

我在我的Windows 10上安装了Oracle XE 18C Express Edition,第一次成功连接到可插拔数据库XEPDB1。之后,我所有连接这个数据库的尝试都失败了。我收到的错误是:

Ora-12541 : TNS : No listener.

检查控制面板,以下所有服务都在运行: OracleOraDB18Home1MTSRecoveryService OracleOraDB18Home1TNSListener OracleServiceXE 只有以下服务不是: OracleVssWriterXE。当我检查默认侦听器“xe”状态时,我得到:

LSNRCTL> status xe
Connexion α (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=****)(PORT=1521)))
TNS-12541: TNS : aucun processus d'Θcoute
 TNS-12560: TNS : erreur d'adaptateur de protocole
  TNS-00511: Pas de processus d'Θcoute
   64-bit Windows Error: 61: Unknown error
Connexion α (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS : aucun processus d'Θcoute
 TNS-12560: TNS : erreur d'adaptateur de protocole
  TNS-00511: Pas de processus d'Θcoute
   64-bit Windows Error: 2: No such file or directory

这是我的 listener.ora 的内容:

# listener.ora Network Configuration File: C:\app\windows\product\18.0.0\dbhomeXE\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

DEFAULT_SERVICE_LISTENER = XE

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\windows\product\18.0.0\dbhomeXE)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\windows\product\18.0.0\dbhomeXE\bin\oraclr18.dll")
    )
  )

XE =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ****)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

这是我的 tnsnames.ora:

# tnsnames.ora Network Configuration File: C:\app\windows\product\18.0.0\dbhomeXE\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

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

LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = ****)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
4

1 回答 1

2

鉴于您发布的 tnsnames.ora 文件,您需要为 XEPDB1 可插拔数据库添加一个条目。

复制 XE 的现有条目并粘贴到 XE 条目下方。

编辑行 XE = 以读取 XEPDB1 = 并编辑 SERVICE_NAME 行将 XE 更改为 XEPDB1

保存更改,关闭文件,停止所有 Oracle 服务,重新启动所有 Oracle 服务,一切都应该很好。

于 2021-01-22T11:18:44.743 回答