详解Oracle 网络服务(oracle网络服务名配置为什么不成功)
sinye56 2024-10-01 20:11 7 浏览 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内容,感兴趣的朋友可以关注下!
相关推荐
- 程序员:JDK的安装与配置(完整版)_jdk的安装方法
-
对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...
- Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置
-
一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...
- 麒麟系统安装JAVA JDK教程_麒麟系统配置jdk
-
检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...
- 学习笔记-Linux JDK - 安装&配置
-
前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
-
1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...
- Linux 下安装JDK17_linux 安装jdk1.8 yum
-
一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...
- 在Ubuntu系统中安装JDK 17并配置环境变量教程
-
在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...
- 如何在 Linux 上安装 Java_linux安装java的步骤
-
在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...
- Windows和Linux环境下的JDK安装教程
-
JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...
- linux安装jdk_linux安装jdk软连接
-
JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...
- linux安装jdk,全局配置,不同用户不同jdk
-
jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...
- 运维大神教你在linux下安装jdk8_linux安装jdk1.7
-
1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...
- window和linux安装JDK1.8_linux 安装jdk1.8.tar
-
Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...
- 最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?
-
默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- linux进程通信 (63)