我已经看过很多教程,但我无法弄清楚。数据库连接正常(在 SQL PLUS 上检查)监听器正常。但我仍然收到此错误: 在此处输入图像描述
他们说的另一件事是检查文件 tnsnames.ora,但这很奇怪,因为该文件位于名为 sample 的文件夹中(它不应该是,对吗?) 在此处输入图像描述
我需要为课程安装 Oracle。我是初学者(对不起,如果我的解释不完美)。我希望有一个人可以帮助我。谢谢!
首先我们应该看看你的数据库是否运行正常。也一样
开始 => cmd => sqlplus / as sysdba
如果您的数据库已正确安装并正在运行,您将看到:
C:\>sqlplus / as sysdba
SQL*Plus: Release 21.0.0.0.0 - Production on Wed Nov 10 12:28:07 2021
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL>
您可以键入“exit”退出 SQL Plus。如果连这都不起作用,那么安装可能出现了问题,在这种情况下,我将向您推荐此答案末尾的视频,作为整个过程的演练。
假设您的数据库正在运行,接下来的事情是检查侦听器(它允许您从其他地方连接到数据库,例如 SQL Developer)是否正在运行并且配置正常。一个常见问题是它可能根据在 PC 上找到的主机信息侦听错误的 IP 地址。
如果你跑
开始 => cmd => lsnrctl 状态
您将被告知您的侦听器是否已启动并正在运行以及它正在侦听的 IP 地址
C:\>lsnrctl status
LSNRCTL for 64-bit Windows: Version 21.0.0.0.0 - Production on 10-NOV-2021 12:30:48
Copyright (c) 1991, 2021, Oracle. All rights reserved.
...
...
Listener Parameter File C:\oracle\product\21c\homes\OraDB21Home1\network\admin\listener.ora
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xxx.xxx.xxx.xxx)(PORT=1521)))
...
...
这是您需要在 SQL Developer 中输入的 IP 地址。或者,您可以编辑 listener.ora(根据上面输出中的路径)并将 HOST= 更改为 HOST=localhost。这个过程是:
lsnrctl 停止
编辑 listener.ora 文件以更改为 localhost
通过服务或运行停止侦听器(通过 cmd 作为管理员)
lsnrctl 启动
然后 lsnrctl status 应该类似于
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
然后你应该很高兴。
请注意,对于 Express Edition,默认服务名称是 XEPDB1,而不是使用 XE 的 SID。如果您收到无法连接到 XEPDB1 的错误,则可能是可插拔数据库未打开。使用您的 SQL Plus,您还可以通过以下方式进行检查:
SQL> select name, open_mode from v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
XEPDB1 MOUNTED
SQL> alter pluggable database XEPDB1 open;
Pluggable database altered.
SQL> alter pluggable database all save state;
Pluggable database altered.
如果它显示 MOUNTED,最后两个命令将打开它并确保它在您下次重新启动 PC 时自动打开。
如果您完全陷入困境,您可以按照 Windows XE 团队的视频从头开始
检查服务的工作情况:OracleOraDB21Home1TNSListener、OracleServiceXE