我正在尝试使用SQL Developer连接到oracle数据库.
我安装了.Net oracle驱动程序并将tnsnames.ora文件放在
C:\Oracle\product\11.1.0\client_1\Network\Admin
我在tnsnames.ora中使用以下格式:
dev =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = idpdev2)
)
)
Run Code Online (Sandbox Code Playgroud)
在SQL Developer中,当我尝试创建新连接时,没有TNS名称显示为选项.
有什么我想念的吗?
有时我会遇到Oracle连接问题,因为我无法弄清楚我的数据库客户端正在使用哪个tnsnames.ora文件.
想出这个的最佳方法是什么?++对各种平台解决方案感到满意
从lsnrctl status命令中我收到以下错误:
C:\Users\pna105>lsnrctl stat
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 08-OCT-2014 17:53
:55
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
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)
它在重新启动之前工作正常,但现在它无法工作,我也无法访问我的Oracle主页.
我tnsnames.ora是:
ORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL …Run Code Online (Sandbox Code Playgroud) 我是SQL Server用户.
我正在使用oracle的项目(我很少使用)我需要创建一个ODBC连接,所以我可以通过MS Access访问一些数据我的机器上有一个名为oraHome90的应用程序.它似乎允许在"网络配置实用程序"中配置一个称为侦听器的东西,我认为还需要完成"本地网络服务名称配置".IT支持为我提供了设置ODBC连接的信息.我尝试过每一个我能想到的组合.我可以通过测试成功通过测试"登录"到oracle服务器数据库.当我尝试创建ODBC连接时,我收到以下错误:ORA-12154:TNS:无法解析服务名称.
假设我想从头开始,以下信息应该允许我连接到数据库......任何建议或评论?注意:最终项目将有一个网站.ASP页面查询数据,但我必须首先证明我可以通过MS Access使用ODBC连接查看数据
Service name: SERVICENAME
HOST = HOST.XYZi.com
User Id: MYUSERID
Password: MYPASSWORD
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Oracle Connection
Dim ocst
Dim oconn
ocst = "Provider=OraOLEDB.Oracle;" & _
"Data Source=DATASOURCE;" & _
"User ID=CHIJXL;" & _
"Password=password;"
set oconn = CreateObject("ADODB.Connection")
Run Code Online (Sandbox Code Playgroud) Borderline ServerFault问题,但我想先在这里尝试一下,因为我过去对Oracle的问题很满意.
我正在尝试从PHP连接到oracle数据库,我收到以下错误.
ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
Run Code Online (Sandbox Code Playgroud)
这是PHP报告的错误,以及Oracle的listener.log中显示的错误.
我当前的问题是解决这个错误.我想回答的一个更大的问题是Oracle连接模型是如何工作的?
这是在我的本地Windows机器上运行的开发环境中,并且一直在运行.不幸的是,环境被移交给我(我没有设置它),谁的人没有设置它是不可用的帮我调试.
如果我在MySQL或PostgreSQL(我更熟悉的两个系统)中遇到类似的错误,我会检查以确保数据库进程正在运行,然后尝试使用用户名/密码/手动连接到数据库连接字符串.不幸的是,我不熟悉Windows上的Oracle工具(除了SQL Developer),我不知道什么是TNS:监听器或SID在Oracle的上下文中(我有一些模糊的想法,但模糊的想法很少有帮助你正在调试这样的东西)
任何一般建议将不胜感激.
每条评论的更新:
我的tnsnames.ora文件中有很多内容,相关条目是
OBS2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = steel-ae39650)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = OBS2)
)
)
Run Code Online (Sandbox Code Playgroud)
当我运行时,这不会反映在实例列表中
LSNRCTL> services
Run Code Online (Sandbox Code Playgroud)
所以我认为我的下一个问题是,如何尝试手动启动OBS2实例?
是否可以使用与Oracle 10/11捆绑的sqlldr使用完全限定的TNS条目?
例如,在SQLPlus中:
sqlplus user/password@(description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(sid=orcl))) @script.sql
Run Code Online (Sandbox Code Playgroud)
但是使用sqlldr(SQL Loader)似乎直接使用TNS条目存在问题.特别:
sqlldr user/password@(description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(sid=orcl))) bad='bad_file.txt' control='control.ctl' data='data.txt' log='log.txt' direct='true'
Run Code Online (Sandbox Code Playgroud)
这是产生的错误消息:
LRM-00116: syntax error at 'address' following '('
SQL*Loader: Release 11.2.0.1.0 - Production on Tue Sep 13 15:41:54 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
SQL*Loader-100: Syntax error on command-line
Run Code Online (Sandbox Code Playgroud)
尝试将TNS条目封装在引号中会产生相同的错误.
看看sqlldr文档,并尝试使用'userid'命令行参数无济于事.特别:
sqlldr userid='user/password@(description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(sid=orcl)))' bad='bad.txt' control='control.ctl' data='data.txt' log='log.txt' direct='true'
LRM-00116: syntax error at 'password@(' following '='
SQL*Loader: Release 11.2.0.1.0 - Production on Tue Sep 13 15:44:17 2011
Copyright (c) 1982, …Run Code Online (Sandbox Code Playgroud) 场景:Oracle 11g数据库包含一些敏感的用户数据,如果向错误的一方披露,可能会导致法律责任.
期望的效果:只有从某个IP连接的特定用户才能看到包含此敏感用户数据的列
我不确定隐藏的列或虚拟列是否是正确的方法.似乎细粒度访问控制可以提供帮助.我不确定什么是最好的解决方案.IP的限制可能是在听众层面完成的?
问题:我们如何限制列的可见性,使其仅适用于特定用户?所有其他用户永远不会看到该列,即使在执行"DESC TABLE_WITH_SENSITIVE_DATA"时也是如此
谢谢你的任何提示.
我正在研究一个非常慢的SQL查询(源自使用JBoss 5.1中部署的Hibernate的Java应用程序).此特定查询返回了大约10K记录,但仍然需要40秒或更多.
我最终用数据库嗅探了流量(wireshark有一个TNS的解剖器)并发现了一些意想不到的东西.当数据来自服务器时,每个结果行都在其自己的TNS数据包中.此外,在从数据库发送下一个TNS数据包之前,客户端(即应用服务器)确认每个TNS数据包.对于10K记录,有10K往返来获取数据包并确认它.对性能的影响是巨大的.
这非常低效.TCP允许更大的数据包并具有许多机制(滑动窗口,延迟的ACK)以减少延迟并提高吞吐量.但是,在这种情况下,它是顶部的TNS协议,它增加了自己的协商.
如果我从Oracle的SQL Developer运行相同的查询,我看不到这种模式.查询在大约1/10的时间内完成,没有数千次往返.
简短版本:Oracle的有线协议(TNS)似乎在每个查询结果行的一个TNS数据包中传递数据,并要求在服务器发送下一个数据包之前由客户端确认每个数据包.
我已经找到了一些关于这个[这里] [1]的信息(向下滚动直到关于'tnsnames.ora文件中的SDU和TDU参数'部分).
因此我的问题是:是否可以控制Oracle驱动程序的行为(我使用10.2.0.4.0),因此TNS协议更有效?同样,这是一个在JBoss中部署的非常标准的J2EE应用程序.
非常感谢!
我没有引用 sqlnet.ora 文件进行查找,并且几乎提供了以下 TNS URL 用于连接,我需要在下面的连接 URL 中挤入 SDU 设置,我想知道它会去哪里以及新的如何url 会是什么样子?
这是我正在使用的:jdbc:oracle:thin:@192.168.191.231:1521:naladomain
我现在需要在上面的 TNS 字符串中压缩自定义 sdu 设置。我该怎么做?:-)
谢谢!
与这个人有相反的问题。 TNSPING好,但是sqlplus给出了ORA-12154吗?
我正在尝试在VMWare Workstation中的VM上安装Oracle。我尝试在以下位置安装Oracle 11g和12c:
在每种情况下,我都会看到一个对话框,显示“未满足最低要求”。当我在AppData中检查安装日志时,我得到了。
检查是否可以确定本地主机的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
Run Code Online (Sandbox Code Playgroud)
然后,我得到一个ORA-12504:在CONNECT_DATA中未为TNS:Listener提供SERVICE_NAME。这很奇怪,因为我什至没有尝试使用tnsnames.ora文件中的条目进行连接。我尝试在Net Manager的sqlnet.ora配置管理器中推广EZCONNECT。
我已验证Oracle安装程序确实将侦听器放在了名为“ LISTENER”的计算机上
我还有另一台在裸机上运行Windows Server 2012 R2的服务器。我交叉检查了所有的tns,侦听器和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本地主机
适用于64位Windows的TNS Ping实用工具:版本11.2.0.1.0-在2015年9月17日生产11:36:02
版权所有(c)1997、2010,Oracle。版权所有。
使用的参数文件:C:\ app \ Administrator \ product \ 11.2.0 \ dbhome_1 \ network \ admin \ sqlnet.ora
使用EZCONNECT适配器解析别名尝试联系(DESCRIPTION =(CONNECT_DATA =(SERVICE_NAME =))(ADDRESS =(PROTOCOL …
oracle ×10
tns ×10
tnsnames ×4
oracle11g ×3
connection ×1
database ×1
odbc ×1
performance ×1
privacy ×1
security ×1
sql-loader ×1
sqlplus ×1