在继续Oracle客户端的安装之前,需要分析一下Oracle客户端与数据库服务器之间的连接机制。

一、Oracle客户端与服务器端的通讯机制

1、Oracle Net协议

如下图所示,Oracle通过Oracle Net协议实现客户端与服务器端的连接以及数据传递。Oracle Net是同时驻留在Oracle数据库服务器端和客户端上的一个软件层,它封装了TCP/IP协议,负责建立与维护客户端应用程序到数据库服务器的连接。

如下图所示,客户端发出的请求首先通过Oracle Net协议转换,转换成可以通过网络传输的信息,通过TCP/IP网络将请求传输到数据库服务器端;服务器端接受到客户请求后要通过Oracle Net协议转换,将请求转换成数据库可以解释执行的本地指令,并在服务器端执行(主要是一些输入输出操作),并将结果通过TCP/IP协议和Oracle Net协议传输给客户端显示。

2、客户端与服务器端的连接过程

在分析客户端与服务器端的连接机制之前,先要定义两个概念,一个是Oracle监听器,一个是Oracle网络服务名。

Oracle数据库服务器通过一个名为“Oracle Net监听器”的组件接收来自客户端的连接请求。监听器是位于服务器端的一个后台进程,发送给数据库的客户端连接请求,首先被服务器端的监听器所侦听,并将请求所转交给对应的数据库实例,从而建立起客户端与服务器的连接。连接建立后,客户端与服务器端就可以直接进行通讯,不再需要监听器参与。

要实现监听器对客户请求的监听,需要对监听器进行配置,包括监听端口、监听器所在数据库的全局数据库名称、数据库实例等信息。

Oracle网络服务名是一个标识符,它代表着客户端连接服务器的配置信息(实际上就是连接请求的内容),包括数据库主机地址、监听端口、全局数据库名称等内容((有关全局数据库、数据库实例等,请参考Oracle数据库安装部分)。

如图所示,客户端与服务端的连接过程为:

(1)首先在服务器端有一个常驻的监听器(监听服务要打开)监听客户端发出的连接请求。
   (2)用户在客户端(企业服务器或SQL工具)输入用户名、口令及网络服务名,或在SQL命令行中输入类似“CONNECT username/password@net_Service_name”的类似请求。
   (3)客户端查看网络服务配置文件tnsname.ora,将网络服务名映射为包含Oracle服务器地址、监听端口和全局数据库名的连接描述符。
   (4)客户端根据连接描述符定位监听器,并通过网络将连接信息传递给监听器。
   (5)监听器查询监听配置文件listener.ora,找出所要连接的数据库服务器。
   (6)客户机和服务器开始通信。

二、监听器配置

1、添加和配置监听器

如下图所示使用Oracle Net Configuration Asistant工具添加并配置服务器的监听器:

监听程序配置完成后,数据库系统会自动启动该监听器。

添加和配置监听器后也可以使用Oracle Net Manager工具查看和修改监听器配置,如监听位置、监听器所服务的全局数据库名称等。如下图所示:

对于本安装,监听器配置信息记录在E:\Oracle_Server\oracle\ora92\network\admin\listener.ora文件中。其主要内容如下:

LISTENER =
     (DESCRIPTION_LIST =
       (DESCRIPTION =
         (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = tsinghua-p5z3mm)(PORT = 1521))
         )
       )
     )

SID_LIST_LISTENER =
    (SID_LIST =
      (SID_DESC =
        (SID_NAME = PLSExtProc)
          (ORACLE_HOME = E:\Oracle_Server\oracle\ora92)
            (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = mydb.bawei)
            (ORACLE_HOME = E:\Oracle_Server\oracle\ora92)
              (SID_NAME = mydb)
          )
        )

三、客户端工具的安装与网络服务的配置

可以在不同于数据库主机的其它机器安装客户端工具,并通过配置客户端网络服务,连接到数据库服务器。客户端安装与配置过程如下图所示(本安装将客户端安装在了与数据库同一台机器的不同目录中,模拟远程访问数据库的情况):

在安装了客户端并配置了客户端网络服务名之后就可以从客户端工具登录和访问远端数据库服务器了。对于本安装,客户端网络服务配置记录在E:\Oracle_Client\oracle\ora92\network\admin\tnsnames.ora文件中,其主要内容如下:

REMOTEDB =
     (DESCRIPTION =
       (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.6)(PORT = 1521))
       )
       (CONNECT_DATA =
         (SERVICE_NAME = mydb.bawei)
       )
     )

这样,当在客户端工具中输入网络服务名remotedb时,将被解析为数据库地址、端口、全局数据库名等信息,与输入的用户名、密码一起发送到服务器端,由监听器接收,并与监听配置文件对照,将请求转交给相应的数据库实例处理。

客户端网络服务可以使用客户端的Oracle Net Manager工具进行修改,也可以添加新的客户端网络服务名。

需要指出的是

服务器端的客户工具(SQL PLUS、企业管理控制台等)与数据库服务的连接机制与远程客户端连接是一样的。
    在安装完Oracle数据库后,系统默认在数据库服务器本地安装了SQL PLUS等客户端工具,而且在监听配置文件的相同位置E:\Oracle_Server\oracle\ora92\network\admin文件夹中默认提供了服务器端的网络服务连接配置文件tnsnames.ora,其中包含一个与数据库实例SID同名的网络服务名配置,包括数据库所在主机名或ip地址、监听端口、数据库服务名(全局数据库名)等。对于本安装,该tnsnames.ora文件主要内容如下:

MYDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = tsinghua-p5z3mm)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mydb.bawei)
    )
  )

当使用数据库服务器端的客户工具时,和从远程客户机连接服务器一样,也是根据输入的用户名、密码及网络服务名(或类似CONNECT username/password@net_Service_name的SQL命令行),查找tnsnames.ora文件,找到网络连接服务名等于net_Service_name的一项,并获取数据库主机地址、监听端口、全局数据库名等信息。

该请求信息同样被传输到监听端口,监听器再将该信息与同在文件夹E:\Oracle_Server\oracle\ora92\network\admin中的listener.ora监听器配置文件对照,如果listener.ora监听器配置文件中包含匹配的项,则将该请求转给对应的数据库实例。

由此可见,服务器端的客户端工具与数据库服务的连接与远程客户端连接一样,执行了相同的的过程。
    实际上,服务器端的客户工具是通过服务器端tnsnames.ora和listener.ora进行验证并建立连接;远程客户端是通过客户端的tnsnames.ora和服务器端的listener.ora执行验证和建立连接。

Oracle客户端的安装与远程连接配置的更多相关文章

  1. ubuntu下MySQL的安装及远程连接配置(转)

    1.命令窗口中输入sudo apt-get install mysql-server mysql-client 即可(配置文件位置:/etc/mysql/my.cnf 启动文件位置:/etc/init ...

  2. ubuntu18.04中mysql的安装及远程连接配置

    1.ubuntu 18.04 下mysql的安装 sudo apt install mysql-server 2.mysql 安装配置 sudo mysql_secure_installation 参 ...

  3. oracle客户端免安装配置、64位机器PL/SQL和VS自带的IIS连接问题

    一.oracle客户端免安装配置 1.到oracle官网下载Oracle InstantClient, 把它解压缩到单独目录,例如C:\OracleClient,2. 添加环境变量 ORACLE_HO ...

  4. centos7最小安装后——网络配置、常见命令安装,远程连接、yum源安装软件包

    安装环境 #软件:vmware 14 #centos版本:CentOS-7-x86_64-DVD-1810 下载地址: #网络配置:NAT模式 配置 网络配置 #动态获取ip: centos7最小安装 ...

  5. linux安装mysql全纪录[包括yum和rpm安装,编码,远程连接以及大小写问题]

    linux安装mysql全纪录[包括yum和rpm安装,编码,远程连接以及大小写问题] 一.查看mysql是否已经安装 使用“whereis mysql”命令来查看mysql安装路径: [root@h ...

  6. Windows 环境Oracle客户端下载安装

    Windows 环境Oracle客户端下载安装 1.官方网站下载Oracle客户端 64位下载地址 http://www.oracle.com/technetwork/database/enterpr ...

  7. Linux平台 Oracle 18c RAC安装Part2:GI配置

    三.GI(Grid Infrastructure)安装 3.1 解压GI的安装包 3.2 安装配置Xmanager软件 3.3 共享存储LUN的赋权 3.4 使用Xmanager图形化界面配置GI 3 ...

  8. Mysql远程连接配置

    Mysql远程连接配置 环境:unbuntu 16.04 最新版本的Mysql在远程连接的配置上与老版本有了一些出入,照原先的配置已经不行了,所以在这里记录一下遇到的所有新问题. 配置远程连接的步骤如 ...

  9. SVN创建资源库和远程连接配置

    SVN创建资源库和远程连接配置 本机安装的是TortoiseSVN-1.7.5.22551-win32-svn-1.7.3.msi 安装好后会在鼠标右键中出现如图最后两项的选项: 创建svn资源库: ...

随机推荐

  1. WIN10平板 如何修改网络IP地址为固定

    右击网络,属性,更改适配器设置,然后可以找到当前的无线网络   然后依次点开即可修改IP地址

  2. MySQL SELECT 执行的具体步骤

    1:SELECT 执行的顺序 8SELECT 9DISTINCT <select_list> 1FROM <left_table> 3JOIN <right_table& ...

  3. windows 系统中的 afd 驱动

    afd 的全称是 Ancillary Function Driver for WinSock,是 windows 系统网络部分的核心工具.同 Linux 类似,windows 的 socket 最终也 ...

  4. Certificate Formats | Converting Certificates between different Formats

    Different Platforms & Devices requires SSL certificates in different formatseg:- A Windows Serve ...

  5. javascript验证QQ号、邮箱和手机号码

    //验证QQ号码5-11位 function isQQ(qq) { var filter = /^\s*[.0-9]{5,11}\s*$/; if (!filter.test(qq)) { retur ...

  6. 通过jarjar.jar来替换jar包名的详细介绍

    有时候我们根据一些场景 需要替换第三方jar包的包名,比如Android广告平台sdk,更换他们jar包包名的话,可以防止市场检测到有广告插件,所以,今天就介绍一下如何使用jarjar.jar工具来替 ...

  7. 【LeetCode】242. Valid Anagram (2 solutions)

    Valid Anagram Given two strings s and t, write a function to determine if t is an anagram of s. For ...

  8. 提取aar 包中的jar包,反编译再替换成新的aar

      参考了 http://blog.csdn.net/hekewangzi/article/details/44676797 针对aar包,增加一些说明 aar包本质应该是zip文件.可以用360解压 ...

  9. HTML5手机页面里面如何把长按复制避免

    在写HTML5手机页面的时候,有时候会写到一些标签是需要用户长按然后放开的 但是微信里面长按就会出现复制,大大影响了用户体验,那么如何可以避免呢? 我也是最近写到这样的页面,总结了一部分,大家可以作为 ...

  10. Spring Boot 2.0 整合 FreeMarker 模板引擎

    本篇博文将和大家一起使用Spring Boot 2.0 和FreeMarker 模板引擎整合实战. 1. 创建新的项目 2. 填写项目配置信息 3. 勾选web 模块 4. 勾选freemarker模 ...