ORA-12154:无法连接到 Windows 10 上的默认 Oracle XE 21c 数据库

问题描述 投票:0回答:3

我已经受够了。我就是无法让它发挥作用。我在 Windows 10 桌面上安装了 Oracle XE 21c。当我以管理员身份运行安装文件后,安装就顺利了。我基本上都选择了默认值。

现在它正在运行,并且 XE 为我创建了一个默认数据库。但当我尝试使用 SQLPlus 作为 SYSTEM 连接时,我得到了这个信息:


SQL*Plus: Release 21.0.0.0.0 - Production on Mon Nov 1 19:08:25 2021
Version 21.3.0.0.0

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

Enter user-name: SYSTEM
Enter password:
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified

我查看了一下,没有 tnsnames.ora 或 listern.ora 文件,所以我尝试创建它们,尽管我不确定它们是否正确。

C: pp\sysde\product c\dbhomeXE etwork dmin\listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

C: pp\sysde\product c\dbhomeXE etwork dmin nsnames.ora

LISTENER = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

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

然后我停止了监听器,如下所示

lsnrctl stop

产生了这个:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   64-bit Windows Error: 2: No such file or directory
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   64-bit Windows Error: 61: Unknown error

侦听器 OracleOraDB21Home1TNSListener 不再在 services.msc 中运行。当尝试重新启动它时,我得到这个...

Error 2: The system cannot find the file specified.

我的环境变量是:

  ORACLE_HOME=C:\app\sysde\product\21c\dbhomeXE\
  TNS_ADMIN=C:\app\sysde\product\21c\dbhomeXE\network\admin

我知道有很多“无法连接到 Oracle”的帖子。我已经尝试了其中的一些部分,但没有一个真正适合我的情况,而且我尝试过的部分根本没有帮助。如果您允许我使用默认的 XE 数据库并通过 SQL Developer 之类的 GUI 连接到它,您的任何建议都会非常有帮助。

oracle connection listener tnsnames
3个回答
5
投票

根据文档,从 21c 开始,默认软件安装是只读主页布局,自 18c 起就可用

https://docs.oracle.com/en/database/oracle/oracle-database/21/nfcon/read-only-oracle-home-default-366970591.html

因此,默认情况下,sqlnet 配置文件不会位于 ORACLE_HOME/network/admin 下。

C:\oracle\product\21c\dbhomeXE\network\admin>dir
 Volume in drive C is System
 Volume Serial Number is EEB1-910D

 Directory of C:\oracle\product\21c\dbhomeXE\network\admin

13/10/2021  10:53 AM    <DIR>          .
13/10/2021  10:53 AM    <DIR>          ..
13/10/2021  10:51 AM    <DIR>          sample
13/10/2021  10:52 AM               263 sqlnet.ora.rooh
               1 File(s)            263 bytes
               3 Dir(s)  78,346,031,104 bytes free

C:\oracle\product\21c\dbhomeXE\network\admin>cd ..\..\..\homes\OraDB21Home1\network\admin

C:\oracle\product\21c\homes\OraDB21Home1\network\admin>dir
 Volume in drive C is System
 Volume Serial Number is EEB1-910D

 Directory of C:\oracle\product\21c\homes\OraDB21Home1\network\admin

13/10/2021  10:54 AM    <DIR>          .
13/10/2021  10:54 AM    <DIR>          ..
13/10/2021  10:53 AM               656 listener.ora
13/10/2021  10:53 AM               465 sqlnet.ora
13/10/2021  10:53 AM               263 sqlnet21101310AM5351.bak
13/10/2021  02:51 PM               852 tnsnames.ora
               4 File(s)          2,236 bytes
               2 Dir(s)  78,345,871,360 bytes free

您不需要设置 ORACLE_HOME 或 TNS_ADMIN。您只需编辑“homes”区域中的文件就可以了。

Windows 团队提供了完整的从上到下的安装视频

https://youtu.be/DYleroLay5E


2
投票

OracleXE21 tnsnames.ora 和 sqlnet.ora 的默认路径已在 Express Edition 21c 中更改。新路径将如下所示:C:\oracle\product c\homes\OraDB21Home1 网络管理员 在那里你会找到 tnsnames.ora 和 sqlnet.ora。


0
投票

我用两个步骤解决了同样的问题。我必须进入 Windows 服务并启动 OracleOraDB2Home1TNSListener 服务(它被设置为自动启动,但安装后并未运行。 第二个问题与JRomeo相同,我的IP地址位于listener.ora和tnsnames.ora中。我将条目更改为 localhost,重新启动计算机,现在可以连接到 system@localhost:1521/XEPDB1。 我验证了重新启动后 OracleOraDB2Home1TNSListener 服务正在运行,而无需手动启动它。

© www.soinside.com 2019 - 2024. All rights reserved.