我尝试连接到 Linux EL 5 上安装的 oracle 11g 并收到以下错误

SQL> connect sys/password@ud06 as sysdba
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

我的network/admin下的listener.ora如下

LISTENER=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=ud06)(PORT=1521))
      (ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))

SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=orcl)
      (ORACLE_HOME=/home/oracle/app/oracle/product/11g)
      (SID_NAME=orcl))
    (SID_DESC=
      (SID_NAME=plsextproc)
      (ORACLE_HOME=/home/oracle/app/oracle/product/11g)
      (PROGRAM=extproc)))

我的tnsnames.ora如下

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

UD06=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ud06)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

我的lsnrctl状态显示如下:

LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ud06.us.server.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                17-FEB-2010 16:23:06
Uptime                    0 days 0 hr. 12 min. 33 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/app/oracle/product/11g/network/admin/listener.ora
Listener Log File         /home/oracle/app/oracle/product/11g/log/diag/tnslsnr/ud06/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ud06.us.server.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "plsextproc" has 1 instance(s).
  Instance "plsextproc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
有帮助吗?

解决方案

您可以ping ud06成功(如ud06,不ud06.us.server.com)?

什么命令

lsnrctl services

显示?

编辑: 这听起来好像也许数据库实例名称实际上不是“ORCL”?什么LSNRCTL服务输出告诉我的是,“ORCL”的服务,但在listener.ora文件中定义的,实际上并没有运行。

您可以登录与服务器上的直接连接?如果是这样,你有什么作为ORACLE_SID环境变量的值使用?登录为SYS用户和发出命令:

ALTER系统寄存器;

然后再次发出lsnrctl的服务命令,看是否有其他实例不显示。

此外,如亚历克斯指出,用tnsping命令正在报告一个完全合格的服务名。编辑sqlnet.ora文件,并设置NAMES.DEFAULT_DOMAIN值设置为NULL,如果它有一个值。

编辑2:服务器是否工作在用tnsping ud06 ?或者是我的假设,即客户端和服务器在不同系统上错了?

其他提示

这个问题的答案的问题是非常简单的。不要担心.ORA文件或任何其他配置。甲骨文做所有这些只是完美。

只有当通过命令行连接,它就会与具有在他们@符号密码混淆。

  
    

因此而经由命令行SQL连接,不与它一“@”使用密码。只是使用web接口而不在它的“@”符号,以产生具有一个密码的帐户。

  

也就是说!!问题解决了。我已经打破我的头了好几天了,现在我的问题就解决了!

SERVICE_NAME输出的tnsping不匹配tnsnames.ora所述条目;从Windows中或Linux中这个文件?它看起来像你没有一个地方(Windows)中tnsnames.orau06进入和它的猜测哪些服务名称应该扩大它 - 我认为这是什么参考主机适配器机构

我还碰上ORA-12154:TNS:无法解析连接标识符指定,并且将所述用户试图连接到固定它oinstall组预言的

首先尝试Oracle实例是否开始:

有窗口:

开始 - >配置面板 - >给药touls->服务 - > OracleServiceORCL的(我的实例的方式) - >启动

提供连接字符串是这样的:

服务器名称:端口/服务名称;用户名;密码

“添加连接图像”

我也面临同样的错误,试试这个代码:

SQL> conn  hr/hr  @pdborcl;

如果你找到了同样的错误,这意味着你有不同的可插拔的数据库名称。 仅通过写在sqlplus以下命令来检查可插入的数据库名称

sql> SELECT  name,  con_id  FROM  v$pdbs;

我使用以下步骤解决了这个问题。

首先,如果您没有安装相同的目录或驱动器,则会发生此错误。

但答案就在这里。

  1. 以管理员身份登录窗口。
  2. 转到控制面板。
  3. 系统属性并单击环境
  4. 找到操作系统变量并将名称更改为“TNS_ADMIN”

    enter image description here

  5. 并将值更改为“tnsnames 的目录地址”enter image description here

  6. 重新启动系统。

  7. 恭喜。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top