百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

详解Oracle 网络服务(oracle数据库网络服务名)

mhr18 2024-09-15 21:36 22 浏览 0 评论

概述

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内容,感兴趣的朋友可以关注下!

相关推荐

重大故障!业务核心表被truncate删除,准备跑路……

完蛋!最近项目组同事说,核心业务表被truncate删除,也惊呆了,现在的业务都这么粗暴了,安全机制、作业规范形同虚设?接下来就给大家一起聊下,表被truncate,解决问题的关键就是找到关键的问题!...

数据孤岛(Data Silos)(数据孤岛解决方案)

数据孤岛(DataSilos)是指组织内部数据因技术、管理或文化壁垒被隔离在不同部门、系统或平台中,无法有效共享、整合和交互的状态。这些数据如同分散的“岛屿”,虽各自有价值,但因孤立性难以发挥整体效...

弱口令漏洞总结及研究(弱口令是高危漏洞吗)

1.1弱口令漏洞定义弱口令漏洞是指因使用简单、易猜测、易破解的密码导致的系统安全风险。常见的弱口令包括:默认密码:如admin/admin、root/123456。规律字符:如连续数字(123456)...

SQL 逻辑处理核心知识点全解析,从入门到精通看这篇就够了!

刚入行程序员/数据分析?写SQL总卡壳?别愁!今天一次性把SQL逻辑处理核心技能讲透,涵盖数值、字符、日期函数+条件表达式,附超全数据库差异对比,工作中直接套用!一、SQL函数大揭秘!...

智能文档检索:AI语义搜索实践(智能语音检索)

以下是基于AI语义搜索的智能文档检索实践要点解析,结合行业前沿案例与技术框架:一、核心技术架构与实现路径语义理解与嵌入模型采用BERT、GPT等预训练模型进行文本向量化,捕捉上下文语义15通过多模态分...

国产IAutodraw办公工具更新到3.7.5!这些隐藏功能你知道吗?

大家好,IAuto流程软件(简称IAutodraw)终于迎来2025年的第一个版本更新,本次更新同时包含Window、Mac等操作系统,更新的内容包括:1、流程画布支持Mermaid语法的粘贴(mer...

企业复杂数据处理必备:五款主流好用的报表工具

1.山海鲸报表山海鲸报表(免费的零代码BI报表工具,为您提供BI报表+GIS+数字孪生+可视化大屏一体化服务)作为国产报表工具中的后起之秀,专注于为企业提供高效、便捷的数据可视化与分析方案。它最大的...

Oracle数据库批量更新翻车!老司机3招省80%时间

开篇热梗:凌晨3点,程序员老张盯着屏幕上转不停的进度条,第N次猛灌咖啡——10万条数据更新跑了半小时还没完!突然“啪”的一声,屏幕黑了...(你的系统是不是也这样崩溃过?评论区扣1)终极总结:3句话讲...

硬盘smart健康深度检测工具——wgcloud

S.M.A.R.T的全称为“Self-MonitoringAnalysisandReportingTechnology”,上个世纪九十年代,由于经常发生硬盘莫名其妙的故障问题,导致很多用户的数...

Oracle 数据库培训:让你从菜鸟到大师的华丽转身

深入学习理论知识基础教程:介绍数据库管理系统的基本原理,让学员理解数据库的工作机制。讲解Oracle数据库的安装过程,包括各种环境配置和参数设置。教授如何使用SQL语言进行基本操作,如数据的查...

从 0 到 1:30 天变身 Oracle 数据库大师的独家学习秘籍

基础理论学习数据库基础概念:学习数据库的基本概念,如数据库管理系统表、行、列、索引、事务等。可以阅读《数据库系统概念》这样的经典教材,系统地掌握数据库的基础知识。SQL语言:SQL是与数据库交互的...

数据库故障排查指南(数据库故障处理流程)

数据库故障排查指南大纲常见故障类型与症状连接问题:无法连接、连接超时、连接数过多性能问题:查询缓慢、CPU/内存占用过高、锁等待数据一致性问题:数据丢失、数据损坏、主从不一致日志与错误消息:关键错误日...

Java性能监控工具大揭秘:全面掌握你的应用表现

Java性能监控工具大揭秘:全面掌握你的应用表现在Java开发的世界里,性能优化如同一场永无止境的马拉松。一个程序再优雅的设计,如果执行效率低下,也会让人头疼不已。而性能监控工具就像是我们身边的“跑表...

jmap(jmap -heap详解)

jmap是JDK自带的一个命令行工具,用于生成Java进程的堆内存快照(heapdump),也可以查看Java堆内存的详细统计信息。它是排查内存泄漏、分析对象占用内存情况的重要工具之...

Java性能监控工具:让程序跑得更快的秘密武器

Java性能监控工具:让程序跑得更快的秘密武器大家好呀!今天咱们来聊聊Java程序背后的“幕后英雄”——性能监控工具。这些工具就像是医生手中的听诊器,能够帮我们及时发现程序运行中的各种“健康问题”。无...

取消回复欢迎 发表评论: