WIN764位旗舰版下安装Oracle11gSqlDeveloper
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WIN7 64位旗舰版Oracle 11g SqlDeveloper
安装过程及折腾记录
KeyWord:WIN7, 64位, 旗舰版, oracle 11g ,Oracle SqlDeveloper
连接错误JDK,
The Network Adapter could not establish the connection 供应商代码20
TNS-03505 无法解析名称
环境变量,tnsping,nsnames.ora,sqlnet.ora
首次安装的是:WIN7旗舰版+Oracle11gR264bit服务端+Oracle11gR264bit客户端
安装完成后可导入dmp文件,打开64位客户端自带的Oracle Sqldeveloper时,
提示需要jdk/java.exe支持:
浏览找到Oracle安装目录下的sdk里的java.exe后点OK,报错:
上网查得知Oracle Sqldeveloper是用java写的,需要jdk的支持,而这个版本的Oracle客户端没有自带jdk,Oracle安装目录下的jdk是64位的,而这里的Oracle Sqldeveloper是32位的,不配套。
要么下载一个64位的Oracle Sqldeveloper,要么另外安装一个jdk。
网上下载了一个jdk1.7版本,安装好之后,将其指定为Oracle Sqldeveloper所需的java.exe 的路径,点OK弹框提示当前版本的Oracle Sqldeveloper支持的jdk最高版本为1.6,而我的jdk为1.7版本(实测使用1.7并没有问题)。
至此,Oracle Sqldeveloper软件的界面总算能打开了。
我艹,太来之不易了。
在Oracle Sqldeveloper里新建连接,连接配置如下图所示:
测试连接的时候,总是提示这个错误(同上图中的的红色出错信息):
【遇到错误应该先想到使用tnsping测试监听是否正常】
网上查了很多方法都没解决问题,在ONT上发现一位仁兄跟我的问题相同,他的问题最终解决了,好像是装了Loop Adapter还是什么东西,我也装了一个,装的过程有点小曲折,使用windows的添加硬件窗口添加硬件时,一直在搜素,却出不来结果,这时根据网上的提示,直接从CMD窗口进去添加Loop Adapter才成功了。
装了之后还是不行,没办法,只好根据一个帖子提到的,又装了个32位的客户端,Oracle Sqldeveloper终于能连上数据库了。
后来第二天使用时发现又连不上了,最后发现是因为防火墙不知道何时被打开了,关闭防火墙之后连接又正常了。
今天新建了一个kkzx数据库实例和一个kkzx表空间,导入dmp的时候,发现导不进去,cmd窗口总是提示错误的连接符,经检查连接符确实没有错。
使用tnsping kkzx测试,得知
kkzx服务有问题:(图是后来配的用的tnsping orcl。
当时用的是tnsping kkzx)
网上查了这个错误,说是环境变量的问题。
将环境变量作了以下更改:
原始的环境变量:
D:\Oracle11client32\product\11.2.0\client_1\bin;D:\Oracle11g\product\11.2.0\dbhome_1\bin;C:\Pr ogram Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter;;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEM ROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\
修改之后:
D:\Oracle11g\product\11.2.0\dbhome_1\bin;D:\Oracle11client32\product\11.2.0\client_1\bin;C:\Pr ogram Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter;;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEM ROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine
Components\IPT;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\
改完环境变量之后tnsping就正常了。
【后来想到一种方法不用改环境变量也可以解决这种问题,再次奉上】
sqlnet.ora文件的内容实际上只有这两句:
SQLNET.AUTHENTICA TION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
在有些情况下第二句有可能更简单:
NAMES.DIRECTORY_PATH= (TNSNAMES)
猜想tnsping需要通过这里的NAMES.DIRECTORY_PA TH值找到TNSNAMES.ora文件(TNSNAMES) 表示tns服务信息记录在当前目录下的tnsnames.ora文件里,但是现在D:\Oracle11g\product\11.2.0\dbhome_1\NETWORK\ADMIN目录下有tnsnames.ora文件,
但是D:\Oracle11client32\product\11.2.0\client_1\network\admin
这个目录下面是没有tnsnames.ora文件的,把上面那个目录里的nsnames.ora文件拷过来,然后tnsping测试通过,大功告成!!!
这样就是不修改环境变量解决问题的方法。
实际上我认为这才是解决问题的正确途径,因为tnsnames信息本来就应该是存在于客户端而不是服务端的吧。
Tnsping正常之后去尝试用Oracle Sqldeveloper去连接数据库,还是连不上。
当时实在没办法,干脆把Oracle全部卸载后重装了。
后面会附上完全卸载Oracle的方法(使用Orale自带的卸载会有残留文件和注册表信息,影响再次安装。
)
重装后Oracle Developer连数据库还是这个错误:
经测试tnsping还是有问题,这回知道要改环境变量了。
改完环境变量,tnsping正常了。
[sqlnet.ora有两个,一个是客户端安装目录下的,一个是服务端安装目录下的,环境变量就是控制tnsping命令使用正确的参数文件,即服务端安装目录下的sqlnet.ora]
但是,Oracle Developer还是连不上!!!!!!!!尼玛,要不要这么坑爹啊!!!!!!!!
继续上网查,受网上启发,使用sqlplus tkoa/tkoa尝试登陆sqlplus,结果提示用户名密码错误,想了想,Oracle11g有用户名密码大小写敏感的问题,想起来当时设的用户名密码确实是大写,于是改用sqlplus TKOA/TKOA登录sqlplus,还真成功了。
大受启发,再回来观察Oracle Sqldeveloper里的连接配置,原来如此:
就上图的连接配置来说,有两个错误:用户名密码应该是大写,这里用了小写。
主机名不能用sevenpc,得用localhost。
猜想:因为tnsnames.ora文件里写的是localhost而不是sevenpc,这里必须和tnsnames.ora 里的完全一致。
如果把tnsnames.ora文件里的localhost改成sevenpc,CMD窗口里的tnsping 会出问题,提示无监听程序。
ORACLE连接的原理:服务端监听,客户端访问。
“两头凑”的方式完成一个连接。
如果tnsping一个数据库实例的服务成功,则说明服务端是没问题的,客户端这时如果还连不上,只能是客户端的问题。
测试一个用户名和密码是否可以使用,可以在CMD窗口里使用这个用户名密码登录sqlplus 来测试。
具体命令:sqlplus 用户名/密码,如果连接上了,则说明这个用户名密码可以使用。
如果不行,则看看这个用户有没有被创建,有没有被锁,有没有被赋予相关的角色。
问题查找方法总结:
1、先检查oracle的服务启动了没,本机作为服务器的话起码需要启动TNSListener和orcl
两个服务。
2、Tnsping测试此数据库实例的监听有没有问题。
3、Sqlplus 用户名/密码测试用户名密码是否可用。
4、检查客户端的连接配置是否正确。
11g的话,注意用户名密码是大小写敏感的。
并且主
机名必须和tnsnames.ora里的相同,这样才能完成“对接”。
注意:如果是连接非本机的服务端,对方未开机或未启动服务也会看到这样的错误:。