在继续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客户端连接远程服务器”,是指使用Oracle数据库客户端软件来建立与远程Oracle数据库服务器的连接。Oracle数据库是一种广泛使用的商业数据库系统,它支持多用户并发访问并保证数据的一致性,适用...
oracle客户端连接远程库的配置文件,不需要安装oracle,只需配置即可
在.NET开发环境中,连接Oracle数据库通常需要安装Oracle客户端,但这种方式有时会带来额外的系统负担和配置复杂性。本文将详细介绍一种无需安装Oracle客户端,仅使用C#.NET就能连接远程Oracle数据库的方法,这对于轻...
Oracle客户端的安装与远程连接配置是软件开发过程中的一项重要任务,尤其对于需要访问Oracle数据库的应用程序来说。本文将深入解析Oracle客户端与服务器之间的通讯机制,监听器配置以及客户端工具的安装与服务配置。...
5、配置 Oracle 客户端:安装完成后,需要配置 Oracle 客户端,包括设置服务名、选择网络类型、输入服务器的 IP 地址、选择默认端口等。 Oracle 客户端安装注意事项: * 在安装过程中,如果出现错误,可以忽略...
标题中的“不安装Oracle客户端,远程连接oracle,C#”是指使用C#编程语言,在不安装完整Oracle客户端软件的前提下,通过特定方式实现对Oracle数据库的远程连接。这通常依赖于Oracle提供的轻量级客户端库,如Instant ...
总之,通过使用Oracle即时客户端和C#的Oracle数据提供者,可以在不安装完整Oracle客户端的情况下,有效地连接并操作远程Oracle数据库。这种方法既节省了系统资源,又简化了开发和维护流程。对于需要在多台机器上部署...
Oracle客户端是数据库管理和开发人员与Oracle数据库服务器交互的重要工具,尤其在远程访问和管理数据库时。这个"ORACLE 客户端(安装版)"提供了一种简单易行的安装方式,通过点击“下一步”逐步完成设置,使得不...
Oracle客户端是用于连接到Oracle数据库服务器的软件工具,它提供了数据查询、管理、开发等功能。在本教程中,我们将深入探讨Oracle 11g客户端的安装和配置过程,旨在帮助用户轻松完成这一任务。 首先,我们需要下载...
在提供的压缩包文件"plsqldeveloper连接配置所有文件"中,应包含了PL/SQL Developer的安装程序以及可能的注册码,用于激活软件。安装过程通常包括接受许可协议、选择安装路径和完成安装等步骤。 安装完成后,我们...
### 使用PL/SQL连接远程Oracle数据库(无需安装本地Oracle客户端) 在进行远程Oracle数据库连接时,经常遇到的一个挑战是如何在没有本地Oracle客户端的情况下实现这一目标。本文将详细介绍如何使用PL/SQL Developer...
通过以上步骤,即使没有安装完整的Oracle客户端,也可以顺利地连接到远程Oracle数据库,进行数据查询、表管理等操作。免安装客户端的优势在于快速部署、占用资源少,对于不常进行数据库管理的用户非常实用。但需要...
### PL/SQL 不安装 Oracle 客户端进行远程连接 在 IT 行业中,数据库管理与开发是一项非常重要的工作,而 Oracle 数据库系统作为业界领先的企业级数据库解决方案之一,被广泛应用于各种业务场景中。PL/SQL 开发工具...
总结来说,不安装完整Oracle客户端,仅使用绿色版Instant Client和PL/SQL Developer,通过正确配置tnsnames.ora、环境变量以及字符集,即可实现远程连接Oracle数据库。这种方法既节省了磁盘空间,也简化了安装流程,...
### 实验一 Oracle客户端安装与配置 #### 一、实验目的 本次实验旨在使学习者了解Oracle数据库服务器端和客户端管理系统的安装流程,并熟练掌握如何配置Oracle数据库服务器的网络连接。通过这一过程,学习者将能够...
`sqlDbx`允许用户通过配置TNS(Transparent Network Substrate)来连接Oracle数据库,从而避免了Oracle客户端的庞大体积和安装复杂性。下面我们将深入探讨`sqlDbx`如何连接Oracle数据库以及TNS的配置方法。 首先,`...