与此人有相反的问题。 TNSPING OK but sqlplus gives ORA-12154?
我正在尝试在VMWare Workstation中的VM上安装Oracle。 我试图安装Oracle 11g和12c:
在每种情况下,我都会看到“最低要求未达到”的对话框。 当我在AppData中检查安装日志时,我得到了这个。
检查localhost的IP地址是否可以 确定...严重:CVU不支持目标环境
我已尝试将我的VM设置为使用NAT以及使用桥接连接。 根据这个帖子,可以忽略'CVU错误'。 https://community.oracle.com/thread/2478769
Oracle每次都成功安装,它会自动在我的tnsnames.ora文件中插入一个条目。我可以通过sys
sys@TNS_ENTRY as sysdba
用户进行连接
但是第二次我尝试使用EZCONNECT语法,它不起作用。例如:
>sqlplus /nolog
>connect sys@localhost:1521/service
然后我得到一个ORA-12504:TNS:监听器没有在CONNECT_DATA中获得SERVICE_NAME。这很奇怪,因为我甚至没有尝试使用tnsnames.ora文件中的条目进行连接。我尝试在Net Manager的sqlnet.ora配置管理器中推广EZCONNECT。
我已经确认Oracle安装程序确实将侦听器放在我的机器上,名为“LISTENER”
我有另一台运行Windows Server 2012 R2的服务器在裸机上运行。我交叉检查了所有tns,listener和sqlnet配置以及它们的相同(由11g安装程序创建的默认配置)
我知道VMWare支持其VM上的Oracle数据库。我试图坚持这里列出的这些最佳实践。 http://www.vmware.com/files/pdf/partners/oracle/Oracle_Databases_on_VMware_-_Best_Practices_Guide.pdf
我检查lsnrctl
以确保它正确加载配置。
当我重新启动监听器
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mymachinename)(PORT=1521)))
防火墙已关闭。
这是tnsping的结果:
C:\ Users \ Administrator> tnsping localhost
适用于64位Windows的TNS Ping实用程序:版本11.2.0.1.0 - 生产 在17-SEP-2015 11:36:02
版权所有(c)1997,2010,Oracle。保留所有权利。
使用过的参数文件: C:\应用\管理员\产品\ 11.2.0 \ dbhome_1 \网络\管理员\ SQLNET.ORA
使用EZCONNECT适配器解析别名尝试联系 (DESCRIPTION =(CONNECT_DATA =(SERVICE_NAME =))(ADDRESS =(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) 好的(0毫秒)
^看起来与我的2012 R2裸机服务器上的tnsping完全相同,其上有11g可用。
我错过了一些非常容易的东西吗?我很想知道这件事。
答案 0 :(得分:5)
这是EZCONNECT语法的问题,而不是数据库配置,如Mark Williams所述here。连接字符串中的正斜杠令EZCONNECT混淆,它必须像这样转义:
C:\>sqlplus sys@\"localhost:1521/orcl12\" as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Sep 18 13:10:19 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>