百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

详解Oracle 网络服务

bigegpt 2024-08-24 22:59 2 浏览

概述

ORACLE Net是一个软件层,驻留在客户端和数据库服务器上。它负责建立和维护客户端应用程序和服务器之间的连接,以及它们之间的信息交换,使用的是标准协议。

1.Oracle Net 基础层

在客户端上,应用程序于Oracle Net基础层通信并维护连接。Oracle Net 基础层使用的是Oracle 协议支持,与业界标准的网络通信协议通信,例如TCP/IP,再与Oracle数据库服务器通信。

在Oracle数据库服务器上的情况和在客户端类似。网络协议发生请求到Oracle协议支持层,然后发送信息到Oracle Net 基础层。Oralce Net 基础层再与数据库服务器进程通信处理客户端请求。

2.Oracle 协议支持

Oracle Net 基础层使用Oracle 协议支持与下列标准网络协议进行通信:

1.TCP/IP(4和6)

2.带SSL的TCP/IP

3.命名管道

–专门为微软局域网环境提供。一个服务器端程序创建一个命名管道,客户端进程以名为名称打开它。一边写入,再另一边就可以读取。


关于连接描述符

一个连接描述符时在 tnsnames.ora文件中包含的一个或多个监听的地址和连接信息。

例如:

dbdao=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=dbdao.com)(PORT=1521))
(CONNECT_DATA=
(SID= dbdao01)
(SERVICE_NAME= dbdao01.com)
(INSTANCE_NAME=dbdao01)))

PROTOCOL 参数,用来指定监听协议地址。此处tcp 代表的是TCP/IP在这个例子中 ADDRESS 选项包含下列内容:

HOST 参数 定义了主机名。此处主机是dbdao.com

PORT参数定义了端口。此处指定是1521,这是默认的端口号

CONNECT_DATA 选项包含下列内容:

SID 参数 定义了ORACLE数据库的实例名。此处是dbdao01

SERVICE_NAME参数定义了目标数据库的服务名是dbdao01.com。在数据库中对应的是SERVICE_NAMES初始化参数,也就是通常所说的全局数据库名。

INSTANCE_NAME 参数定义数据库实例。这个是可选的参数。在安装和数据库创建的时候初始化参数INSTANCE_NAME默认为SID。

当然也可以直接使用简单连接字符串的方式例如:

CONNECT scott/oracle@dbdao:1521/dbdao01.com–不指定端口默认使用1521CONNECT scott/oracle@// dbdao /dbdao01.com –//是指定使用JDBC或URL进行连接。普通的sql连接和不指定时等价。

其实就是本地命名配置的连接字符串,例如

dbdao/dbdao01.com:dedicated/dbdao01

对应于:

(DESCRIPTION=(CONNECT_DATA=
(SERVICE_NAME=dbdao01.com)
 
(INSTANCE_NAME=dbdao01)
 
(SERVER=dedicated))
 
(ADDRESS=
 
(PROTOCOL=TCP)
 
(HOST=dbdao)
 
(PORT=1521)))

基本上只要安装了Oracle Net 服务软件的环境都可以使用简单连接命名。确保在sqlnet.ora文件中指定了 NAMES.DIRECTORY_PATH参数中包含EZCONNECT此处dbdao为主机名,dbdao01.com是服务名,dbdao是实例名

例如:

NAMES.DIRECTORY_PATH=(ezconnect, tnsnames)

使用多个监听器来提高服务的可用性:

例如,配置多个监听到多个节点上,可以让客户端连接到相同的数据库服务:

(DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=dbdao1-server)(PORT=1521))
 
(ADDRESS=(PROTOCOL=tcp)(HOST=dbdao2-server)(PORT=1521)))
 
(CONNECT_DATA=
 
(SERVICE_NAME=dbdao01)))

注意:关于RAC的负载均衡,不在此章节的讨论范文之类,有兴趣的同学可以参考:这样还可以利用负载均衡和故障转移特性。当客户端连接第一个监听的时候失败了,就会尝试其他的协议地址。如果启用了客户端连接平衡,客户端在连接的时候会随机连接到一个地址。(dbdao.com oracle 11g OCM培训)


关于监听器:

监听器的配置存储在配置文件listener.ora中。因为配置参数均为默认值,所以可以不用什么配置启动一个监听(没有配置文件listener.ora)。默认的监听名称时LISTENER,支持无服务的启动,并监听固定的TCP协议地址:

(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)(PORT=1521))

监听转发客户端需要被支持的服务,这个服务会动态注册到监听上。这个动态注册的特性被称为服务注册(service regisration).12C之后,当数据库启动的时候LREG后台进程会调查监听是否启动,如果启动就会传递相关参数,如果没启动LREG会周期的尝试连接。在12C 之前,PMON 执行监听注册。

注意:LISTENER 的属性会重写LOCAL_LISTENER参数。修改LOCAL_LISTENER参数不会影响监听器配置的属性。只是影响PMON去自动的注册非1521的监听器。

远程监听参数 REMOTE_LISTENER 也是类似,用于注册数据库到远程的监听。LOCAL_LISTENER和REMOTE_LISTENER参数的值由命名规则解析,通过设置tnsnames.ora来指定。如果tnsnames.ora未设置命名规则别名,在指定参数值的时候会出现ORA-00119和ORA-00132的错误。

例如在tnsnames.ora中配置:

Dbdao_test =(DESCRIPTION =
(ADDRESS = (PROTOCOL=tcp)(HOST=10.0.3.15)(PORT=1521))
 
(CONNECT_DATA =
 
(SERVICE_NAME = dbdao01)
 
)
 
)

lsnrctl 监听器工具

Lsnrctl 是一个交互式的命令行工具。直接运行lsnrctl可以进入控制台

运行help命令可以查询相关的使用说明:(dbdao.com oracle 11g OCM培训)

常用的命令:

lsnrctl RELOAD listener_name

–重载配置

lsnrctl start listener_name

–启动监听

lsnrctl stop listener_name

–关闭监听

lsnrctl status listener_name

–查询监听的状态,会列出很多信息,注册的服务,使用的协议。关于实例信息,如果是ready表示允许连接。BLOCKED 表示实例不允许连接。UNKNOWN表明不是动态注册的,这状态是未知的。RESTRICTED表明实例处于拒绝模式。(dbdao.com oracle 11g OCM培训)

lsnrctl service listener_name

–service 能显示关于服务和句柄的信息。

在使用lsnrctl 命令时,如果不指定监听名称(lsnrctl RELOAD,lsnrctl start lsnrctl stop),默认使用的是LISTENER。

有时候客户端在指定的时候无响应,那么会中断其连接。并且在监听器的日志中会出现:

ORA-12525:TNS: listener has not received client’s request in time allowed 的消息

可以通过SET INBOUND_CONNECT_TIMEOUT 来设置时间:

例如:

lsnrctl set INBOUND_CONNECT_TIMEOUT 600lsnrctl save_config

--保留变更之前的listener配置文件,默认备份为listener.bak


后面会分享更多DBA内容,感兴趣的朋友可以关注下!

相关推荐

AI「自我复制」能力曝光,RepliBench警示:大模型正在学会伪造身份

科幻中AI自我复制失控场景,正成为现实世界严肃的研究课题。英国AISI推出RepliBench基准,分解并评估AI自主复制所需的四大核心能力。测试显示,当前AI尚不具备完全自主复制能力,但在获取资源...

【Python第三方库安装】介绍8种情况,这里最全看这里就够了!

**本图文作品主要解决CMD或pycharm终端下载安装第三方库可能出错的问题**本作品介绍了8种安装方法,这里最全的python第三方库安装教程,简单易上手,满满干货!希望大家能愉快地写代码,而不要...

pyvips,一个神奇的 Python 库!(pythonvip视频)

大家好,今天为大家分享一个神奇的Python库-pyvips。在图像处理领域,高效和快速的图像处理工具对于开发者来说至关重要。pyvips是一个强大的Python库,基于libvips...

mac 安装tesseract、pytesseract以及简单使用

一.tesseract-OCR的介绍1.tesseract-OCR是一个开源的OCR引擎,能识别100多种语言,专门用于对图片文字进行识别,并获取文本。但是它的缺点是对手写的识别能力比较差。2.用te...

实测o3/o4-mini:3分钟解决欧拉问题,OpenAI最强模型名副其实!

号称“OpenAI迄今为止最强模型”,o3/o4-mini真实能力究竟如何?就在发布后的几小时内,网友们的第一波实测已新鲜出炉。最强推理模型o3,即使遇上首位全职提示词工程师RileyGoodsid...

使用Python将图片转换为字符画并保存到文件

字符画(ASCIIArt)是将图片转换为由字符组成的艺术作品。利用Python,我们可以轻松实现图片转字符画的功能。本教程将带你一步步实现这个功能,并详细解释每一步的代码和实现原理。环境准备首先,你...

5分钟-python包管理器pip安装(python pip安装包)

pip是一个现代的,通用、普遍的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能,是Python开发的基础。第一步:PC端打开网址:选择gz后缀的文件下载第二步:...

网络问题快速排查,你也能当好自己家的网络攻城狮

前面写了一篇关于网络基础和常见故障排查的,只列举了工具。没具体排查方式。这篇重点把几个常用工具的组合讲解一下。先有请今天的主角:nslookup及dig,traceroute,httping,teln...

终于把TCP/IP 协议讲的明明白白了,再也不怕被问三次握手了

文:涤生_Woo下周就开始和大家成体系的讲hadoop了,里面的每一个模块的技术细节我都会涉及到,希望大家会喜欢。当然了你也可以评论或者留言自己喜欢的技术,还是那句话,希望咱们一起进步。今天周五,讲讲...

记一次工控触摸屏故障的处理(工控触摸屏维修)

先说明一下,虽然我是自动化专业毕业,但已经很多年不从事现场一线的工控工作了。但自己在单位做的工作也牵涉到信息化与自动化的整合,所以平时也略有关注。上一周一个朋友接到一个活,一家光伏企业用于启动机组的触...

19、90秒快速“读懂”路由、交换命令行基础

命令行视图VRP分层的命令结构定义了很多命令行视图,每条命令只能在特定的视图中执行。本例介绍了常见的命令行视图。每个命令都注册在一个或多个命令视图下,用户只有先进入这个命令所在的视图,才能运行相应的命...

摄像头没图像的几个检查方法(摄像头没图像怎么修复)

背景描述:安防监控项目上,用户的摄像头运行了一段时间有部分摄像头不能进行预览,需要针对不能预览的摄像头进行排查,下面列出几个常见的排查方法。问题解决:一般情况为网络、供电、设备配置等情况。一,网络检查...

小谈:必需脂肪酸(必需脂肪酸主要包括)

必需脂肪酸是指机体生命活动必不可少,但机体自身又不能合成,必需由食物供给的多不饱和脂肪酸(PUFA)。必需脂肪酸主要包括两种,一种是ω-3系列的α-亚麻酸(18:3),一种是ω-6系列的亚油酸(18:...

期刊推荐:15本sci四区易发表的机械类期刊

  虽然,Sci四区期刊相比收录在sci一区、二区、三区的期刊来说要求不是那么高,投稿起来也相对容易一些。但,sci四区所收录的期刊中每本期刊的投稿难易程度也是不一样的。为方便大家投稿,本文给大家推荐...

be sick of 用法考察(be in lack of的用法)

besick表示病了,做谓语.本身是形容词,有多种意思.最通常的是:生病,恶心,呕吐,不适,晕,厌烦,无法忍受asickchild生病的孩子Hermother'sverysi...