资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
WIN7 64 位旗舰版 Oracle 11g SqlDeveloper 安装过程及折腾记录KeyWord:WIN7, 64 位, 旗舰版 , oracle 11g ,Oracle SqlDeveloper连接错误 JDK,The Network Adapter could not establish the connection 供应商代码 20TNS-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:Oracle11client32product11.2.0client_1bin;D:Oracle11gproduct11.2.0dbhome_1bin;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program FilesBroadcomBroadcom 802.11 Network Adapter;C:Program Files (x86)InteliCLS Client;C:Program FilesInteliCLS Client;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:Program Files (x86)IntelOpenCL SDK2.0binx86;C:Program Files (x86)IntelOpenCL SDK2.0binx64;C:Program FilesIntelIntel(R) Management Engine ComponentsDAL;C:Program FilesIntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsDAL;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsIPT;C:Program FilesWIDCOMMBluetooth Software;C:Program FilesWIDCOMMBluetooth Softwaresyswow64;C:Program Files (x86)Microsoft SQL Server90Toolsbinn修改之后:D:Oracle11gproduct11.2.0dbhome_1bin;D:Oracle11client32product11.2.0client_1bin;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program FilesBroadcomBroadcom 802.11 Network Adapter;C:Program Files (x86)InteliCLS Client;C:Program FilesInteliCLS Client;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:Program Files (x86)IntelOpenCL SDK2.0binx86;C:Program Files (x86)IntelOpenCL SDK2.0binx64;C:Program FilesIntelIntel(R) Management Engine ComponentsDAL;C:Program FilesIntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsDAL;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsIPT;C:Program FilesWIDCOMMBluetooth Software;C:Program FilesWIDCOMMBluetooth Softwaresyswow64;C:Program Files (x86)Microsoft SQL Server90Toolsbinn改完环境变量之后 tnsping 就正常了。【后来想到一种方法不用改环境变量也可以解决这种问题,再次奉上】sqlnet.ora 文件的内容实际上只有这两句:SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)在有些情况下第二句有可能更简单:NAMES.DIRECTORY_PATH= (TNSNAMES)猜想 tnsping 需要通过这里的 NAMES.DIRECTORY_PATH 值找到 TNSNAMES.ora 文件(TNSNAMES) 表示 tns 服务信息记录在当前目录下的 tnsnames.ora 文件里,但是现在D:Oracle11gproduct11.2.0dbhome_1NETWORKADMIN 目录下有 tnsnames.ora 文件,但是 D:Oracle11client32product11.2.0client_1networkadmin这个目录下面是没有 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 的话,注意用户名密码是大小写敏感的。并且主机名必须和 tns
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号