由于某些原因需用PL/SQL,第一次用配置了两天,第二次用配置了一天,今天第三次用又配置了半天,不仅软件难用,配置也繁琐,出于防止未来再用总结此文,终结它于此。
第一次使用场景及问题描述:Oracle服务端安装于公司虚拟机,本地也未安装客户端,根据B站黑马oracle视频使用plsql时登录失败,由于时间较久忘记报什么错了。
解决办法:重新安装64位轻量级客户端,并且手动配置环境变量,非轻量级客户端会自动配置。
第二次使用场景及问题描述:Oracle服务端安装于公司服务器,本地安装有32位11gR2客户端。
解决办法:更换软件版本为64位plsql与64位Oracle客户端
第三次使用场景及问题描述:Oracle服务端安装于公司服务器,本地安装有64位11gR2客户端。
报错:ORA-12638: 身份证明检索失败 、Initialization error 、无报错同时没有反应 、ORA-12154: TNS: 无法解析指定的连接标识符 、sqlplus测试:ORA-12560: TNS: 协议适配器错误 、tnsping orcl连接测试:TNS-03505: 无法解析名称错误 、win10 telnet不是内部或外部命令
解决办法:重装Oracle客户端,重新配置文件。
2023/8/15 现梳理万无一失全流程如下:
第一步:删除客户端(未安装忽略这步)
1.1停用服务
在 计算机管理--服务 中停用Oracle服务(没有安装Oracle服务端无以下服务),如下图所示:
1.2卸载产品
在开始菜单中,找到Universal Installer,运行Oracle Universal Installer,单击卸载产品
1.3顺序卸载
在产品清单窗口中,单击全部展开,除了OraDb11g_home1外,勾选其他项目,单击删除卸载完后,再删除:OraDb11g_home1
1.4注册表删除
win+r打开dos命令窗口,输入 regedit,打开注册表,依次展开HKEY_LOCAL_MACHINE\SOFTWARE,找到oracle并删除;
依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中,删除所有oracle开头的项;
依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有oracle开头的项;
在HKEY_CLASSES_ROOT,删除以ora开头的项;
1.5重启
完成步骤1-7后重启电脑,重启后,在C盘的Program Files、Program Files(x86)和用户中删除Oracle文件夹,最后到安装目录下将Oracle删除。
第二步:下载Oracle客户端
2.0下载解压
(下载路径极为孤僻),费劲死了俩小时总结如下
2.1下载步骤
先去Oracle官网:
Oracle | Cloud Applications and Cloud Platform
找到新版下载入口点进去:
再去旧版查询页 :
登录:
搜索:Oracle Database 11g,选完后点击continue
仅选择客户端下载,并选好版本:
选完后浏览器会下载一个Oracle的管理工具再从中选好Windows64位的客户端开始下载:
2.2解压操作
下载完后点击右下角打开目录解压:
以下win64_11gR2_client 与上图V20609-01为相同压缩包,解压后名为client
第三步 :安装步骤
3.1运行安装
管理员运行,会弹出一个DOS窗口,可能需要等几十秒。
3.2环境要求
如果出现了以下窗口,选“是(Y)”继续。
3.3安装类型
安装类型选择“管理员”。
3.4语言选择
语言选择“简体中文”和“英语”。
3.5安装位置
指定Oracle的基目录和软件安装位置,可以用缺省值,也可以如下图。
3.6先决条件
如果出现了“执行先决条件检查”失败,勾选“全部忽略”后再下一步。
3.7点击完成
3.8安装进行
3.9安全警报
如果安装进行中出现Windows安全中心警报,选择“允许访问”。
3.10安装完成
点击关闭即可。环境变量不用配置软件会自动配置。
第三步:安装PL/SQL,参考以下链接吧,目前电脑自带一个12版本汉化完成的,不在细说安装,确保64位对应Oracle即可;PLSQL Developer 下载、安装及汉化详细教程(全网最详细且附有下载链接,保姆级教学,本人已操作确保有效)_plsql安装包_装作不在意的博客-CSDN博客
第四步:配置文件
4.1配置tnsnames
tnsnames.ora,后缀大小写可忽略
从(Oracle客户端软件的安装位置)\network\admin\sample目录中把tnsnames.ora文件复制到\network\admin目录。
用记事本或记事本+ 打开并修改(下图为已改完)
修改#以下的内容 如下:
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
AAAA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bbbb)
)
)
4.2注意事项
注意:以上的参数中只需要关心四个内容
1)数据库名,或数据库服务名,或tnsname,这个名称由您自定义,如AAAA
2)数据库服务器的ip地址,您的服务器ip是多少就填多少,如:(HOST = X.X.X.X)
3)数据库服务器监听的端口,缺省是1521,如:(PORT = 1521)
4)数据库的SID,即ORACLE_SID,如:(SID = bbbb)
第五步:测试连接
5.1telnet测试
telnet X.X.X.X 1521 命令测试服务器端口(telnet命令win10默认不开启,请看5.2)
如果telnet数据库的1521端口成功,表示网络和防火墙都没有问题。如果失败,有四种可能:1)Oracle数据库没有启动监听服务;2)Oracle数据库服务器的防火墙没有开通1521端口;3)云平台的安全组(或访问策略)没有开通1521端口;4)网络故障,网络不通。
5.2telnet错误
telnet若不是内部命令
点击确定等待开启完毕
5.3 tnsping测试
tnsping 数据库名 测试连接 成功如下,出现其它内容,则表示未成功,若未成功回到上一步。但是,注意:如果tnsname中的sid配置不正确,tnsping也是成功的,所以tnsping成功,并不表示客户端可以正常连接。
5.4 sql plus测试
链接命令:sqlplus 用户名/密码@AAAA
第六步:PL/sql相关内容
6.1配置选项
不登录打开PL/SQL,找到配置,新旧版配置位置如下图
6.2 地址修改
主目录:D:\app\LocalHost\product\11.2.0\client_1,
OCI库:D:\app\LocalHost\product\11.2.0\client_1\BIN\oci.dll
6.3登录注意
登录时需注意数据库位置:AAAA必须大写,填写4.1与5.3步设置的AAAA
6.4连接成功
第七步:报错解决办法
7.1ORA-12638: 身份证明检索失败
打开D:\app\LocalHost\product\11.2.0\client_1\network\admin 下的sqlnet文件
如果存在SQLNET.AUTHENTICATION_SERVICES= (NTS)设置,则修改为:SQLNET.AUTHENTICATION_SERVICES= (NONE),如果不存在,则直接添加SQLNET.AUTHENTICATION_SERVICES= (NONE),得以解决。
7.2Initialization error
在确定Oracle与plsql都是64位的情况下再次检查oci配置:确认数据库的OCI库是否匹配了相对应oci.dll文件的地址,见6.1步
7.3无报错同时没有反应
plsql配置主目录与oci的问题,见6.1,6.2
7.4ORA-12154: TNS: 无法解析指定的连接标识符
检查tnsnames.ora配置 ,4.1步中需注意的4个地方再次检查
此步尤其受到其他csdn博客蛊惑,让配置环境配置监听,开启服务等都是Oracle服务端所在电脑需要配置的东西,通常情况下Oracle客户与服务端并不在同一电脑上。
7.5sqlplus测试:ORA-12560: TNS: 协议适配器错误
sqlplus命令不能仅打出sqlplus在输入用户名密码;要整个打出命令:sqlplus 用户名/密码@AAAA
以下两种格式都可:
sqlplus username/password@//host:port/sid
sqlplus usernaem/password@orcl
7.6tnsping AAAA连接测试:TNS-03505: 无法解析名称错误
AAAA为 tnsnames文件中配置的数据库名称位置
安装有Oracle服务器的把环境变量的系统变量path中把oracle服务端安装路径放到oracle客户端安装路径前面。
7.7win10 telnet不是内部或外部命令
参见5.1
参考链接:
如何在电脑上彻底删除Oracle客户端?_oracle客户端卸载_猿道的博客-CSDN博客
win10 telnet不是内部或外部命令(已解决)_windows talent_默默提升实验室的博客-CSDN博客
Oracle>报错:TNS-03505: 无法解析名称错误 - TyroneYang - 博客园 (cnblogs.com)
Oracle11g客户端安装配置 - 码农有道 - 博客园 (cnblogs.com)
sqlplus 登录Oracle,出现:ORA-12560: TNS: 协议适配器错误_sqlplus发生tns协议错误_aganliang的博客-CSDN博客