我已经受够了。我就是无法让它发挥作用。我在 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 连接到它,您的任何建议都会非常有帮助。
根据文档,从 21c 开始,默认软件安装是只读主页布局,自 18c 起就可用
因此,默认情况下,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 团队提供了完整的从上到下的安装视频
OracleXE21 tnsnames.ora 和 sqlnet.ora 的默认路径已在 Express Edition 21c 中更改。新路径将如下所示:C:\oracle\product c\homes\OraDB21Home1 网络管理员 在那里你会找到 tnsnames.ora 和 sqlnet.ora。
我用两个步骤解决了同样的问题。我必须进入 Windows 服务并启动 OracleOraDB2Home1TNSListener 服务(它被设置为自动启动,但安装后并未运行。 第二个问题与JRomeo相同,我的IP地址位于listener.ora和tnsnames.ora中。我将条目更改为 localhost,重新启动计算机,现在可以连接到 system@localhost:1521/XEPDB1。 我验证了重新启动后 OracleOraDB2Home1TNSListener 服务正在运行,而无需手动启动它。