Oracle数据库的连接

  • Oracle数据库环境变量
    • 概述
    • Oracle数据库服务器配置
    • Oracle数据库客户端配置
    • Oracle数据库客户端与服务器共存配置
  • PLSQL Developer配置
    • PLSQL Developer环境变量配置
    • PLSQL Developer中Oracle主目录与oci库配置
      • 1、PLSQL Developer安装在Oracle数据库服务器系统中
      • 2、PLSQL Developer安装在Oracle数据库客户端系统中
      • 3、PLSQL Developer安装在Oracle数据库客户端与服务器共存的系统中

Oracle数据库环境变量

概述

Oracle数据库主要的环境变量配置有四个(Path、TNS_ADMIN、ORACLE_HOME、ORACLE_SID),加上PLSQL Developer的中文配置(NLS_LANGUAGE),共计五个。环境变量的执行优先级高于注册表,在安装数据库时,数据库会将相关配置写入注册表,我们通过修改环境变量来更高一层的控制数据库连接方式。
关于版本位数的说明:instantclient的版本是选择32位还是64位的跟操作系统有关系,64位的instantclient兼容32位数据库,32位的instantclient不兼容64位数据库,因此最好选择64位操作系统及64位合适版本的instantclient;PLSQL Developer的版本与要通过TNS连接的OCI库(Oracle主路径中oci.dll动态链接库文件)的位数有关系(连接64位客户端就用64位PLSQL Developer,连接32位客户端就用32位PLSQL Developer,连接64位数据库就用64位PLSQL Developer,连接32位数据库就用32位PLSQL Developer);instantclient是可以向下兼容的,若不兼容说明是instantclient与操作系统不兼容,不是与数据库不兼容。另注意,PLSQL Developer中ODBC导入器工具如果使用Excel Files导入数据,PLSQL Developer位数与Microsoft Office位数(在开始-帮助中可以查看)必须一致,才能链接Excel成功。
Oracle数据库各个名字之间的关系
全局数据库名=数据库名;Oracle系统标识符(SID)=实例名(也叫做服务名);一个SID只能对应一个全局数据库名;一个全局数据库名可以对应多个SID;网络服务名与SID是多对一的关系,网络服务名可以自己建立多个对应同一个SID。

以下配置以Windows7x64、Oracle10g32位、instantclient_12_2为64位、PLSQL Developer64位为例。

Oracle数据库服务器配置

Path=C:\oracle\product\10.2.0\db_1\bin;…(sqlplus、oci.dll等文件路径)
ORACLE_HOME=C:\oracle\product\10.2.0\db_1(Oracle主目录,关系到TNSListener服务,如果TNSListener服务启动失败应该是该环境变量未配置或配置错误!;TNSListener服务是运行Oracle主目录下\BIN\TNSLSNR.EXE程序)
ORACLE_SID=orcl(服务端已在安装时写入注册表中,因此可以不配置此项目)
TNS_ADMIN= C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN(tnsnames.ora文件所在路径,用于TNS连接数据库,若更改此文件需要重启TNSListener服务和OracleServiceORCL服务,如果OracleServiceORCL服务启动失败应该是该环境变量未配置或配置错误!
服务端系统防火墙关闭时,客户端才可连接成功(服务端系统防火墙未配置情况下);服务端系统防火墙打开时,需要设置允许TNSLSNR.exe程序通过防火墙,并且可以做远程地址ip控制。

Oracle数据库客户端配置

Path=C:\instantclient_12_2;…(sqlplus、oci.dll等文件路径)
ORACLE_HOME= C:\instantclient_12_2(客户端没有Oracle服务,因此可以不配置此项目)
ORACLE_SID=orcl(客户端没有Oracle服务,因此可以不配置此项目)
TNS_ADMIN= C:\instantclient_12_2\config(tnsnames.ora文件所在路径,用于TNS连接数据库)
如要访问多个服务端则将多个服务端tnsnames.ora中相关配置内容整合,如有相同数据库服务名/实例名或相同网络服务名,可更改设置为不同网络服务名以便区分

Oracle数据库客户端与服务器共存配置

Path=C:\instantclient_12_2;C:\oracle\product\10.2.0\db_1\bin;…(sqlplus等程序的路径)
ORACLE_HOME=C:\oracle\product\10.2.0\db_1(oracle主目录,关系到TNSListener服务,不能配置为客户端路径,因为客户端文件中没有\BIN\TNSLSNR.EXE)
ORACLE_SID=orcl(客户端没有Oracle服务,服务端已在安装时写入注册表中,因此可以不配置此项目)
TNS_ADMIN= C:\instantclient_12_2\config(tnsnames.ora文件所在路径,用于使用64位的客户端TNS连接数据库)
此时在同一个电脑中装有数据库服务端(Oracle数据库)和数据库的客户端(instantclient),注意配置PLSQL Developer软件配置中的Oracle主目录为C:\instantclient_12_2,OCI库为C:\instantclient_12_2\oci.dll。

PLSQL Developer配置

PLSQL Developer环境变量配置

为解决连接客户端的PLSQL Developer软件中文查询报错。
用客户端的PLSQL Developer查看服务器端的语言编码:select userenv(‘language’) from dual;我查询到的结果是AMERICAN_AMERICA.ZHS16GBK。执行语句select * from v$NLS_PARAMETERS;查看parameter字段为NLS_LANGUAGE的这一行对应的value字段的值是否和第一步得到的值相同,如果不同,则需要添加环境变量。新建环境变量,变量名:NLS_LANG,变量值就是第一步中的查询结果,我的是AMERICAN_AMERICA.ZHS16GBK。重新启动PLSQL Developer,再进行关于中文的查询即可。
NLS_LANGUAGE=AMERICAN_AMERICA.ZHS16GBK(用于解决连接客户端的PLSQL Developer中文乱码问题)

PLSQL Developer中Oracle主目录与oci库配置

此处也分为三种情况。

1、PLSQL Developer安装在Oracle数据库服务器系统中

此时不需要手动配置。

2、PLSQL Developer安装在Oracle数据库客户端系统中

按上图配置客户端路径即可。注意一定要先应用再确定!然后重启PLSQL Developer即可显示出tnsnames.ora文件中的网络服务名。

3、PLSQL Developer安装在Oracle数据库客户端与服务器共存的系统中

同PLSQL Developer安装在Oracle数据库客户端系统中的情况。

更多推荐

Oracle数据库的连接