Oracle Net Architecture Oracle Net体系结构
目标:
- 解释Oracle网栈通信架构的关键组件
- 解释Oracle网在客户端-服务器连接中的作用
- 描述如何通过Oracle网络产品建立Web客户端连接
- Oracle网用于建立网络上的应用程序之间的连接,这取决于以下几点:
- 网络配置
- 节点的位置(Oracle数据服务器的位置)
- 应用程序
- 网络协议
- 连接类型可以是:
- 客户端一服务器应用程序
- Java应用程序
- Web客户端应用程序
TCP/IP
(主流的协议)TCP/IP with SSL
(具有SSL加密,更加安全)Named Pipes
(微软开发专门支持在局域网的一种协议)SDP
(性能高于TCP/IP,用于高端的网络要求)
Web浏览器(这里指的javaweb,如果使用的是C/C++可以使用OCI连接)可以通过以下方式连接到Oracle服务器:
Oracle Java数据库连接 (JDBC) 驱动程序提供Java应用程序访问甲骨文数据库。甲骨文提供了两个JDBC驱动程序:
JDBC OCI Driver
驱动程序是一个2级JDBC驱动程序,用于客户端/服务器Java应用程序。JDBC OCI驱动程序将JDBC调用转换为对OCI的调用,然后通过Oracle网络发送到Oracle数据库服务JDBC Thin Driver
驱动程序是Java applet使用的4级驱动程序。JDBC Thin驱动程序通过Java套接字建立到Oracle数据库服务器的直接连接。TTC和Oracle Net的轻量级实现有助于对数据库的访问。以下是两种连接方式的工作流程图:
以下是HTTP连接的工作流程图:
Service Registration 服务注册流程
一旦客户机请求到达侦听器,侦听器将选择适当的service handler
来服务客户机的请求,并将客户机的请求转发给它。侦听器确定是否可以通过service registration
使用数据库服务及其服务处理程序。在服务注册期间,PMON进程 (一个实例后台进程) 为侦听器提供以下信息:
- 数据库提供的数据库服务的名称
- 与服务关联的实例的名称及其当前和最大负载
- 实例可用的服务处理程序(调度程序和专用服务器),包括它们的类型、协议地址以及当前和最大负载
此信息使侦听器能够正确地引导客户端的请求
Listener
Listener
注册服务Listener
建立连接服务tnsnames.ora
和listener.ora
配置文件的位置位于:$ORACLE_HOME/network/admin
目录下
我们可以切换到这里进行查看:
cd $ORACLE_HOME/network/admin
我们现在查看一下tnsnames.ora
cat tnsnames.ora
sqlplus system/123@orcl
连接我们使用sqlplus,用户名是system(这个可以是其他的),密码是123(要连接的用户的用户名),@符号后边跟着图中坐上第一个红方框中的内容就可以完成连接连接描述符:
三个关键参数:
在客户端进行远程连接的时候需要启动监听程序:
使用ps -ef | grep oracle
来查看监听程序是否启动
如果没发现红框内部这一条的话说明监听是没有启动的,我们需要启动
启动监听的命令:lsnrctl start
只有启动监听我们外部才能进行连接,当然有许多人是在自己本地执行命令进行连接的,再本地进行连接监听不启动也能够用连接到数据库实例。
- 对于本地连接,您不需要启动监听。您可以直接连接到本地数据库实例,而无需通过监听器。这对于开发和测试来说非常方便。
但是对于非本地连接,当您要连接到一个数据库实例时,如果监听没有运行,那么PMON(实例后台进程)将无法注册服务。因此,如果不启动监听,无论是通过SQLPLUS还是其他方式,都不可能连接到数据库。
登录数据库执行语句:show parameter service