点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
问题集速览:
- 问题1:服务器上同时安装Oracle客户端和服务端
- 问题2:CMD命令行下进不去SQLPLUS命令行,多个实例间进行临时切换
- 问题3:PLSQL报错你确定已经安装了Oracle Clinet吗
- 问题4:PLSQL登录时无法选择对应数据库
背 景
日常维护中,特别是测试环境,避免不了即部署有Oracle服务端,又部署有Oracle客户端,那怎么配置,才能使服务端和客户端都能同时正常使用呢?在日常运维中,你是否遇到过数据库能正常登录,PlSQL却不能,又该怎么样解决等等这一系列问题呢?接下来本文将一一介绍。在此之前,需要先明确以下内容:
- 数据库安装包分为客户端和服务端,其中客户端一般有client字样的名字;服务端一般有dbhome字样。注意,各安装版本还有32位和64位区分,通常也会在文件名上体现出。
- PLSQL需要32位Oracle客户端才能正常连接使用。
-
PLSQL 位数对应Oracle客户端位数才能正常连接使用。
PLSQL 位数对应Oracle客户端位数才能正常连接使用。
问题集问题1:服务器上同时安装Oracle客户端和服务端1)背景正式环境下数据库服务器上一般只会安装Oracle服务端,但对于部分测试环境或带有应用程序的服务端环境,即需要安装Oracle客户端,又需要安装Oracle服务端,且默认安装情况下无法正常使用时,那怎样配置才能使两者都正常运行呢?2)问题Windows下Oracle客户端无法正常使用或数据库无法正常启动。3)处理正确配置Oracle_home和tns_admin环境变量参数。示例:解释:
- 用户变量:配置Oracle_home和tns_admin为客户端的路径,这样PLSQL和Plsql这类才能正常识别连接字符串。如:
Tns_admin=C:\Oracle\network\admin
Oracle_home=C:\Oracle
- 系统变量:配置Oracle_home和tns_admin为服务端的路径,这样数据库才能在services.msc服务中正常启动监听和实例。如:
Tns_admin=D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
Oracle_home=D:\app\Administrator\product\11.2.0\dbhome_1
参考:官网How to configure different ORACLE_HOME settings (文档 ID 1913933.1)问题2:CMD命令行下进不去SQLPLUS命令行,多个实例间进行临时切换1)背景如按照问题1的方式配置环境变量后,数据库通过服务形式能正常启动,但SQLPLUS命令行进不去时。2)问题CMD命令行下SQLPLUS无法正常使用,报错如下:3)处理临时设置正确的服务端环境变量,如:
set oracle_home=D:\app\Administrator\product\11.2.0\dbhome_1
4)扩展如存在多个实例名,可使用set oracle_sid=xxx来进行实例之间的临时切换。问题3:PLSQL报错你确定已经安装了Oracle Clinet吗1)问题客户端安装64位PLSQL后报错,且已安装了oracle简易版客户端:或使用的32位PLSQL,但使用的64位客户端版本:2)处理Plsql版本位数需要和Oracle客户端版本位数对应,如64位plsql需要64位Oracle客户端版本才能正常使用。
这里处理:安装64位oracle客户端版本,并配置正确的客户端tns_admin即可。
注意:常用的PLSQL Developer 8.0.3.1510.rar绿色plsql版本为32位。
问题4:PLSQL登录时无法选择对应数据库1)问题PLSQL登录时无法选择对应数据库,如下:2)处理配置与PLSQL相应位数的Oracle版本的环境变量tns_admin参数即可。
END