Oracle(2-2)Oracle Net Architecture

文章目录

  • 一、基础知识
    • 1、Oracle Net Connections Oracle网络连接
    • 2、C/S Application Connection C/S应用程序连接
    • 3、OSI Communication Layers OSI通信层
    • 4、Oracle Protocol Support Oracle协议支持
    • 5、B/S Application Connections B/S应用程序连接
    • 6、TwoTypes JDBC Drivers 两种JDBC连接方式
    • 7、Web Connection Using HTTP web浏览器使用HTTP连接Oracle
    • 8、Concepts & Terminology 概念和术语介绍
    • 9、连接三步走的过程
    • 10、Net Configuration Models 网络配置模型
    • 11、Overview of Naming Methods 命名方法概述
    • 12、Configuration Files Oracle配置文件
    • 13、Three Key Parameters 连接的三个关键参数
  • 二、基础操作
    • 1、监听程序的启动
    • 2、查看Oracle服务名字的方法

在这里插入图片描述

Oracle Net Architecture Oracle Net体系结构
目标:

  • 解释Oracle网栈通信架构的关键组件
  • 解释Oracle网在客户端-服务器连接中的作用
  • 描述如何通过Oracle网络产品建立Web客户端连接

一、基础知识

1、Oracle Net Connections Oracle网络连接

  • Oracle网用于建立网络上的应用程序之间的连接,这取决于以下几点:
    • 网络配置
    • 节点的位置(Oracle数据服务器的位置)
    • 应用程序
    • 网络协议
  • 连接类型可以是:
    • 客户端一服务器应用程序
    • Java应用程序
    • Web客户端应用程序

2、C/S Application Connection C/S应用程序连接

在这里插入图片描述

3、OSI Communication Layers OSI通信层

在这里插入图片描述

  • 其中TCP层在运输层,IP在网络层

4、Oracle Protocol Support Oracle协议支持

  • TCP/IP (主流的协议)
  • TCP/IP with SSL (具有SSL加密,更加安全)
  • Named Pipes (微软开发专门支持在局域网的一种协议)
  • SDP(性能高于TCP/IP,用于高端的网络要求)
    • SDP 套接字目录协议 (SDP) 是Infiniband网络对等点之间的行业标准有线协议。当SDP在Infiniband网络上使用时,它通过消除数据的中间复制和将大部分消息传递负担从CPU转移到网络硬件上来减少TCP/IP的开销。

5、B/S Application Connections B/S应用程序连接

Web浏览器(这里指的javaweb,如果使用的是C/C++可以使用OCI连接)可以通过以下方式连接到Oracle服务器:

  • 将应用程序Web服务器用作中间层,该中间层配置有以下任一项:
    • JDBC Oracle Call Interface (OCl) driver
    • Thin JDBC driver
  • 使用HTTP直接连接到Oracle服务器(这种方法使用的比较少)

6、TwoTypes JDBC Drivers 两种JDBC连接方式

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的轻量级实现有助于对数据库的访问。

以下是两种连接方式的工作流程图:
在这里插入图片描述

7、Web Connection Using HTTP web浏览器使用HTTP连接Oracle

在这里插入图片描述

以下是HTTP连接的工作流程图:
在这里插入图片描述

8、Concepts & Terminology 概念和术语介绍

  • Database services 数据库服务
  • Service Name 服务名字
    • 数据库的逻辑表示
    • 将数据库呈现给客户端的方式
  • Connect Descriptor 连接描述
    • 数据库的位置
    • 数据库服务的名称
  • Listener Oracle监听
    • 接收客户端连接请求
    • 将请求传递给数据库服务器
  • Service Registration 服务注册
    • 数据库向侦听器注册信息
    • 每个实例可用的服务处理程序
  • Service Handlers 服务器管理员
    • 连接点 (客户端和服务器的连接点)
    • 调度器或专用服务器

Service Registration 服务注册流程
在这里插入图片描述
一旦客户机请求到达侦听器,侦听器将选择适当的service handler来服务客户机的请求,并将客户机的请求转发给它。侦听器确定是否可以通过service registration使用数据库服务及其服务处理程序。在服务注册期间,PMON进程 (一个实例后台进程) 为侦听器提供以下信息:

  • 数据库提供的数据库服务的名称
  • 与服务关联的实例的名称及其当前和最大负载
  • 实例可用的服务处理程序(调度程序和专用服务器),包括它们的类型、协议地址以及当前和最大负载

此信息使侦听器能够正确地引导客户端的请求

9、连接三步走的过程

在这里插入图片描述

  • 需要先启动Listener
  • 然后启动数据库实例
  • 数据库实例向Listener注册服务
  • 然后客户端与Listener建立连接服务
  • 最后直接将客户端和服务端连接在一起,能够直接进行双向通信

10、Net Configuration Models 网络配置模型

  • 本地化管理
    • 网络中每台计算机上有一个本地配置文件
  • 集中化管理
    • 符合LDAP的目录服务器(适合大规模的配置)
    • Oracle命名服务器

11、Overview of Naming Methods 命名方法概述

  • 当尝试连接到数据库服务时,客户端应用程序使用命名方法将连接标识符解析为连接描述符。我们要连接数据库需要知道数据库服务的ip地址和端口号
  • Oracle网络提供了五种命名解析方法:
    • Host naming (基于操作系统的解析方法)
    • Local naming (使用tnsnames.ora配置文件)(最常用)适合小规模
    • 使用目录服务 (最常用)适合大规模
    • Oracle服务名称
    • 第三方提供的信息服务

12、Configuration Files Oracle配置文件

在这里插入图片描述

  • 其中最重要的的就是tnsnames.oralistener.ora

配置文件的位置位于:$ORACLE_HOME/network/admin目录下
我们可以切换到这里进行查看:

cd $ORACLE_HOME/network/admin

在这里插入图片描述
我们现在查看一下tnsnames.ora

cat tnsnames.ora

在这里插入图片描述

  • 我们能够看出它的协议是TCP,HOST是本机(如果是远程连接的话会显示ip地址),端口号是1521,服务名是orcl
  • 注意做上方第一个红框的ORCL,在我们连接数据库的时候就可以使用这个
    • 语法举例:sqlplus system/123@orcl 连接我们使用sqlplus,用户名是system(这个可以是其他的),密码是123(要连接的用户的用户名),@符号后边跟着图中坐上第一个红方框中的内容就可以完成连接
    • 在这里插入图片描述
    • 连接后会有两个版本号,第一个是连接机器上的版本号,第二个是你连接到的Oracle的版本号

13、Three Key Parameters 连接的三个关键参数

  • 连接描述符:

    • 数据库的位置
    • 数据库服务的名称
  • 三个关键参数:

    • IP地址
    • 端口号
    • 服务名称

二、基础操作

1、监听程序的启动

在客户端进行远程连接的时候需要启动监听程序:
使用ps -ef | grep oracle来查看监听程序是否启动
在这里插入图片描述
如果没发现红框内部这一条的话说明监听是没有启动的,我们需要启动
启动监听的命令:lsnrctl start
只有启动监听我们外部才能进行连接,当然有许多人是在自己本地执行命令进行连接的,再本地进行连接监听不启动也能够用连接到数据库实例。

  • 对于本地连接,您不需要启动监听。您可以直接连接到本地数据库实例,而无需通过监听器。这对于开发和测试来说非常方便。

但是对于非本地连接,当您要连接到一个数据库实例时,如果监听没有运行,那么PMON(实例后台进程)将无法注册服务。因此,如果不启动监听,无论是通过SQLPLUS还是其他方式,都不可能连接到数据库。

2、查看Oracle服务名字的方法

登录数据库执行语句:show parameter service

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/193188.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm封装插件打包上传后图片资源错误

问题: npm封装插件:封装的组件页面涉及使用图片资源,在封装的项目里调用图片显示正常;但是打包上传后,其他项目引入使用报错找不到图片资源;图片路径也不对 获取图片的base64方法 解决方案: 将…

3.4 Linux 软件管理

一. RPM 软件包管理器 1、软件包介绍 RPM(RedHat Package Manager)软件包:扩展名为“.rpm”。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。安装RPM软件包需要使用rpm命令或yum命令。 源代码软…

PC端微信@所有人逻辑漏洞

(一)过程 这个漏洞是PC端微信,可以越权让非管理员艾特所有人,具体步骤如下 第一步:找一个自己的群(要有艾特所有人的权限)“123”是我随便输入的内容,可以更改,然后按c…

Mac M3 芯片安装 Nginx

Mac M3 芯片安装 Nginx 一、使用 brew 安装 未安装 brew 的可以参考 【Mac 安装 Homebrew】 或者 【Mac M2/M3 芯片环境配置以及常用软件安装-前端】 二、查看 nginx 信息 通过命令行查看 brew info nginx可以看到 nginx 还未在本地安装,显示 Not installed …

百望云斩获“新华信用金兰杯”ESG优秀案例 全面赋能企业绿色数字化

近年来,中国ESG蓬勃发展,在政策体系构建、ESG信披ESG投资和国际合作等方面都取得了阶段性成效,ESG生态不断完善。全社会对ESG的认识及实践也在不断深化,ESG实践者的队伍在不断发展壮大。 ESG作为识别企业高质量发展的重要指标&…

Kafka(三)生产者发送消息

文章目录 生产者发送思路自定义序列化类配置生产者参数提升吞吐量 发送消息关闭生产者结语示例源码仓库 生产者发送思路 如何确保消息格式正确的前提下最终一定能发送到Kafka? 这里的实现思路是 ack使用默认的all开启重试在一定时间内重试不成功,则入库&#xff…

VS Code画流程图:draw.io插件

文章目录 简介快捷键 简介 Draw.io是著名的流程图绘制软件,开源免费,对标Visio,用过的都说好。而且除了提供常规的桌面软件之外,直接访问draw.io就可以在线使用,堪称百分之百跨平台,便捷性直接拉满。 那么…

TOUGH系列软件教程

查看原文>>>全流程TOUGH系列软件实践技术应用 TOUGH系列软件是由美国劳伦斯伯克利实验室开发的,旨在解决非饱和带中地下水、热运移的通用模拟软件。和传统地下水模拟软件Feflow和Modflow不同,TOUGH系列软件采用模块化设计和有限积分差网格剖分…

(八)Spring源码解析:Spring MVC

一、Servlet及上下文的初始化 1.1> DispatcherServlet的初始化 对于Spring MVC来说,最核心的一个类就是DispatcherServlet,它负责请求的行为流转。那么在Servlet的初始化阶段,会调用init()方法进行初始化操作,在DispatcherSe…

第三天课程 RabbitMQ

RabbitMQ 1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应&am…

数据库事务相关问题

1. 什么是数据库事务? 事务,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。 假如A转账给B 100 元,先从A的账户里扣除 100 元,再在 B 的账户上加上 100 …

python自动化第一篇—— 带图文的execl的自动化合并

简述 最近接到一个需求,需要为公司里的一个部门提供一个文件上传自动化合并的系统,以供用户稽核,谈到自动化,肯定是选择python,毕竟python的轮子多。比较了市面上几个用得多的python库,我最终选择了xlwings…

SOME/IP学习笔记3

目录 1.SOMEIP Transformer 1.1 SOME/IP on-wire format 1.2 协议指定 2. SOMEIP TP 2.1 SOME/IP TP Header 3.小结 1.SOMEIP Transformer 根据autosar CP 相关规范,SOME/IP Transformer主要用于将SOME/IP格式的数据序列化,相当于一个转换器。总体…

uniapp+vite+vue3开发跨平台app,运行到安卓模拟器调试方法

因为没有使用hbuilder开发uniapp,而是使用了vscode和vite来开发的,所以怎么将这个程序运行到安卓模拟器调试开发呢?其实方法很简单,使用android studio创建一个模拟器或者其他mumu模拟器,然后将项目使用hbuilder打开&a…

macos死机后IDEA打不开,Cannot connect to already running IDE instance.

Cannot connect to already running IDE instance. Exception: Process 573 is still running 解决办法 进入:/Users/lzq/Library/Application Support/JetBrains 找到IDEA的目录删除隐藏文件夹 .lock rm -rf .lock

黑马程序员微服务 第五天课程 分布式搜索引擎2

分布式搜索引擎02 在昨天的学习中,我们已经导入了大量数据到elasticsearch中,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以今天,我们研究下elasticsearch的数据搜索功能。我们会分别使用DSL和Res…

入选《人工智能领域内容榜》

入选《人工智能领域内容榜》第 23名 C# OpenCvSharp DNN HybridNets 同时处理车辆检测、可驾驶区域分割、车道线分割-CSDN博客

Playwright UI 自动化测试实战

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

Semantic Kernel 学习笔记1

1. 挂代理跑通openai API 2. 无需魔法跑通Azure API 下载Semantic Kernel的github代码包到本地,主要用于方便学习python->notebooks文件夹中的内容。 1. Openai API:根据上述文件夹中的.env.example示例创建.env文件,需要填写下方两个内…

Vue 简单的语法

1.插值表达式 1.插值表达式的作用是什么? 利用表达式进行插值,将数据渲染到页面中; 2.语法结构? {{表达式}} 3.插值表达式的注意点是什么? (1)使用的数据要存在,在data中&…