配置ORACLE 客户端连接到数据库
--=================================
-- 配置ORACLE 客户端连接到数据库
--=================================
Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置直接集成到了操作系统之中。所以无需配置客户端即可连接到服务器。Oracle 客户端连接到数据库依赖于Oracle Net。Oracle提供了很多基于客户端或服务器的配置工具,需要搞清的是Oracle Net 中的相关术语。术语明白了,其实配置方法与SQL server 大同小异。
一、什么是Oracle Net
Oracle Net 用于客户端和服务器之间创建一个连接会话,并负责维护该会话。
Oracle Net 在客户端作为应用程序的一个后台进程组件,而在服务器端则包含称为侦听器的活动进程,
负责客户端和服务器之间的交互。
Oracle Net 同时也支持异构数据库的连接,如连接到Sybase,Informix,DB2,SQL Server等
通常基于下列配置来实现
网络配置(网络必须是联通的)
节点所在的位置(IP/Hostname)
应用程序
所使用的协议(TCP/IP、/TCP/IP with SSL、SDP、Named Pipes)
Oracle Net支持的连接类型
客户端-服务器模式(如SQLPlus)
Java 应用程序(JDBC等)
Web 客户端应用程序
使用基于Web的应用程序(App Server)作为中间件来实现,可以配置JDBC Oracle Call Interface (OCI) driver 或thin JDBC driver
通过HTTP直接连接到Oracle 服务器,如OEM
Oracle Net实现机制
用户发出连接请求实现与用户进程进行交互
用户进程通过Oracle Net 来与服务器进程交互
服务器进程则与实例进行交互(由Oracle Net维护)
实例通过后台进程交互来完成数据库的读写操作
Oracle Net 连接方式
本地客户端连接的数据库(即客户端与数据库位于同一台服务器)。
本地连接同样使用到了Oracle Net,因为任何与数据的交互都通过Oracle Net来完成。
不需要使用到Listener,因为本地连接使用的是IPC协议,而IPC协议允许主机内进程间相互通信,由操作系统提供。
本地连接不需要进行任何配置,且本地服务器上可以运行若干个实例。
本地连接是唯一一个不需要侦听器的连接类型。
连接方法:CONNECT username/password
所有非本地客户端连接到数据库
服务器端启用Listener进程
客户端通过TNSNAME或Easy connect或LDAP等名称解析方式来解析连接字符串
一旦连接成功,即是Listener服务停止,不影响该会话。
Oracle Net Listener(侦听器)
运行于服务器端,用于侦听所有来自客户端的连接请求,并提供处理数据库服务方面的请求
位置:$ORACLE_HOME/network/admin/listerer.ora
--对应于netmgr中(GUI界面)的Listeners项下建立的缺省侦听器(Listener)
$ORACLE_HOME/network/admin/sqlnet.ora
--对应于netmgr中(GUI界面)的Profile
服务器端配置tnsnames
位置:ORACLE_HOME/network/admin/tnsnames.ora
--对应于netmgr中(GUI界面)的Service Naming
Listener提供的信息包括,IP地址、端口号、协议、服务名(service_name)等
一个Listener能够为多个数据库实例提供服务
二、客户端到服务器建立会话的过程及相关术语
执行如下的命令来建立连接
&n