JRo*_*meo 6 oracle connection tnsnames listener
我已经受够了。我就是无法让它发挥作用。我在 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
Run Code Online (Sandbox Code Playgroud)
我查看了一下,没有 tnsnames.ora 或 listern.ora 文件,因此我尝试创建它们,尽管我不确定它们是否正确。
C:\app\sysde\product\21c\dbhomeXE\network\admin\listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )
Run Code Online (Sandbox Code Playgroud)
C:\app\sysde\product\21c\dbhomeXE\network\admin\tnsnames.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)
    )
  )
Run Code Online (Sandbox Code Playgroud)
然后我停止了监听器,如下所示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
Run Code Online (Sandbox Code Playgroud)
侦听器 OracleOraDB21Home1TNSListener 不再在 services.msc 中运行。当尝试重新启动它时,我得到这个......
Error 2: The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
我的环境变量是:
  ORACLE_HOME=C:\app\sysde\product\21c\dbhomeXE\
  TNS_ADMIN=C:\app\sysde\product\21c\dbhomeXE\network\admin
Run Code Online (Sandbox Code Playgroud)
我知道有很多“无法连接到 Oracle”的帖子。我已经尝试了其中的一些部分,但没有一个真正适合我的情况,而且我尝试过的部分根本没有帮助。如果您允许我使用默认的 XE 数据库并通过 GUI(例如 SQL Developer)连接到它,您的任何建议都会非常有帮助。
根据文档,从 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
Run Code Online (Sandbox Code Playgroud)
您不需要设置 ORACLE_HOME 或 TNS_ADMIN。您只需编辑“homes”区域中的文件即可。
Windows 团队提供了完整的从上到下的安装视频