Oracle一个监听多个实例
Oracle数据库基本知识
Oracle数据库基本知识Oracle数据库基本知识Oracle Database,又名OracleRDBMS,或简称Oracle。
是甲骨文公司的一款关系数据库管理系统。
本文为大家分享的是Oracle数据库的基本知识,希望对大家有所帮助!它是在数据库领域一直处于领先地位的产品。
可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。
它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
介绍ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
比如SilverStream 就是基于数据库的一种中间件。
ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
Oracle数据库最新版本为OracleDatabase 12c。
Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。
此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。
这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。
就业前景从就业与择业的角度来讲,计算机相关专业的大学生从事oracle 方面的技术是职业发展中的最佳选择。
其一、就业面广:ORACLE帮助拓展技术人员择业的广度,全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位,大学生在校期间兴趣广泛,每个人兴趣特长各异,不论你想进入金融行业还是电信行业或者政府机构,ORACLE都能够在你的职业发展中给你最强有力的支撑,成为你最贴身的金饭碗。
Oracle网络监听器的配置分析
Oracle网络监听器的配置分析电脑知识与技术......网络通讯与安全?Oracle网络监听器的配置分析杨延广.曹素丽(石家庄邮电职业技术学院,河北石家庄050011)摘要:Oracle已经广泛应用于许多大型企业中,保证其正常的网络通信是DBA的一项重要职责,文章就其中服务器端的监听器的各种配置作了细致阐述与分析.指出了配置中需注意的一些问题.关键词:Oracle;数据库;监听器;配置中图分类号:TP393文献标识码:A文章编号:1009—3044(2006)23-0088-01 OracleNetListenerConfigurationY ANGYan—guang,CAOSu—li(siazhuangP&TTechnicalCortege,Shijiazhuang05001l,China)Abstract:Oracleiswidelyapphedtomanybigenterprises,DBAmustensureitsnetworkcom municationsisexpedite.Inthispaper,itis detailedhowtoCOnfigureOraclenetlistene~andsomethingpaida~enfiontoisindicated. Keywords:Oracle;Database;Listener;Cortfiguration1监听器概述监听器是Oracle网络服务组成中的一个重要组件,它通常位于服务器机上.以操作系统进程的形式运行工作.监听器进程就像是安在服务器上的一只耳朵,负责监听客户端发来的初始连接请求,然后再将请求交给Oracle数据库服务器,如图1所示.●一一一一一'一'一一一一一一一一一一一一一一一一一'一一一一一一一一1 运行数据库服务器的计算机:《囤图1监听器的基本工作原理在Oracle网络环境中,必须在数据库服务器上配置监听器,才能接受客户端的连接请求,当网络上客户请求数量较大时,还要进行合理的监听器配置来平衡负载,才能确保服务器的响应不会太慢,保证连接的畅通.监听器监听到初始的连接请求后,会根据数据库服务器类型来选择合适的服务处理器:如果监听器监听的数据库服务器属于专用服务器类型(即每个客户端进程要连接到一个专门的服务进程),则监听器为该客户端请求启动一个新的专用服务进程,然后将客户端连接信息交给这个新的服务处理器;如果监听的数据库服务器属于共享服务器类型(此时与客户端连接的是调度器,一个调度器进程可以与多个客户端同时建立连接),则监听器将该客户端请求交给负荷最小的调度器进行处理.选择的服务处理器不管是专用服务进程还是调度器,一旦客户端与服务器的连接已经建立,客户端和服务器即可直接通信, 不再需要监听器的参与,此时监听器可以继续监听其它客户的连接请求.2监听器配置对监听器进行配置是数据库服务器端网络配置中最重要的工作,配置时可以使用图形工具OracleNetConfigurationAssistant (Oracle网络配置助手)或OracleNetManager(OracleNet管理员),也可以手工配置.每台数据库服务器要求至少配置一个监听器,以监听客户的服务请求.但是如果有多个客户尝试同时访问数据库,那么一个监听器可能会导致监听器的响应时间延迟.因为一个监听器一次只能处理一个请求.因此,一个数据库可以配置多个监听器,以便平衡通信流量或者各个监听器所处理的数据量.另外,只要数据库位于与监听器相同的服务器上,一个监听器就可以处理对多个数据库的请求.2.1监听器配置要包含的内容一台服务器上的所有监听器的配置信息都保存在服务器的监听配置文件listener.ora中.正如以下listener.or'a文件内容所示,监听器配置时应包括几个方面的内容:US1'ENER=fDESCRIPTIONLIST=fDESCRIPnON=fADDRESS=.LISTfADDRESS=ROTOCOL=IPC)(KEY=EX11PROC0))1(ADDRESS_LIST=fADDRESS=(PROTOCOL=TCP)(HOST=sss)(PORT=l521)) )))SIDUSTUS1'ENER=(SID—UST=fSIDDESC=fSIDNAME=PLSExtProc1fORACLEHOME=f.'\oracle~ora921(PROGRAM=extproc))fsIDDESC=fGLOBALDBNAME=mydb1fORACLEHOME=fi\oracle\ora921fSIDNAME=mydb))1监听器名称:管理员可以同时配置多个监听器,每个监听器都有一个唯一的名字,默认情况下Oracle会自动配置一个名为US1'ENER的监听器.监听地址:包括协议,监听主机,监听器使用的端口等信息,一个端口是计算机上的一个地址或位置,可以在这里访问特定的程序或服务.你可以将端口看作是一扇门,从客户端请求服务时,必须将该请求发送到一个监听器所监听的端口,即客户必须敲正确的门.常采用的是TCP协议,此时默认的监听端口是1521.需要强调的是,如果要为一个服务器配置多个监听器,那么每个监听器必须使用不同的名字和TCP端口.这里监听了两个地址:第一个用于任何外部过程调用请求,第二个用于名称为sss的计算机上的Oracle9i数据库的任何服务请求.SID_LIs1'_LISⅡ:NER部分指出了监听器LISTENER所要监听的所有数据库的列表.上述的定义可以监听两个服务.这样在配置文件中通过SID_LIST_<listener_name>部分明确指出要监听(]转第114页)收稿日期:2006-04-26作者简介:杨延广(1965一),男,河北晋州人,副教授,硕士,主要从事计算机教学与科研开发工作.\.研究开发......电脑知识与技术(if(nullbasepoint)(setqbasepoint(00)))fsetqxxIlen0.0)(setqxdis(,(一x2xI)n));计算极角的增量(setqlen(calpolarexp))(setqPI(polarbasepointxlen));起点(setqb(ssadd));初始化选择集(setqosm(getvar"OSMODE"));保存OSNAP模式fsetvar"OSMODE"0);关闭OSNAP模式(setqolm(getvar"LIMCHECK"));保存LIMITS状态(setvar"LIMCHECK"0);关闭出界检查(repeatn(prognfsetqxf+xxdis));极角增量(setqlen(calpolarexp));计算极径(setqp2(polarbasepointxlen));下一点坐标command"PLINE"plp2"");绘制PLINE线(setqplp2);重设起点~sadd(entlast1b1;加入选择集);endprogn);endrepeatcommand"PEDIT"(entlast)"i..b……");连接成一条PLINE线(setvar"OSMODE"osm):恢复目标捕捉模式setvar"LIMCHECK"olm);恢复LIMITS状态fprinc"\ll绘制完毕.\ll")(princ));endPW.利用本程序绘制的函数曲线实例见图l.O图1绘制的函数曲线4小结以上提出的函数曲线绘制实现方法,简练高效,用它绘制函数曲线十分方便,通用性强.具有很强的工程应用意义.若再辅以DCL对话框设计,可以使其更加方便易用.参考文献:【1】郑阿奇.AutoCAD2000中文版实用教程【M】.北京:电子工业出版社.2oo0.【2】周克绳.AutoCAD计算机绘图软件【M】.北京:国防工业出版社.1991.(上接第88页)的服务信息的方法称作静态数据库服务注册;如果省略此部分.不明确指出服务,而是设置好一些初始化参数,由后台进程PMON在数据库启动时将该数据库服务的相关信息通知监听器.这就称作动态数据库服务注册.下面对两种注册的配置分别进行论述.2.2静态服务注册的配置为了使监听器能够处理针对Oracle8或更早版本的数据库实例的连接请求,以及想使用OEM(OracleEnterpriseManager)工具时.必须采用这种方式配置.配置这种方式实质就是除了要定义所需要的监听器的名称,监听协议地址信息之外,还必须要有SIDLIST<listenername>部分,用于指明要监听的数据库服务.如下例所示,配置了一个监听器LISrITENER3,其监听一个协议地址,监听两个数据库: USTENER3=(DESCRIP11ON—UST=rI)ESCRIP11ON:(ADDRESS:(PROTOCOL:TCP)(HOST=sss)(PORT=1522)))) SIDIENER=_LISTLIS3(SID-UST=(SID—DESC=(GLOBAL—DBNAME=student)(0RACLE—HOME=c:\c:\oracle\ora921(SID_NAME=student))(SID—DESC=fGLOBALDBNAME=mydb1(0RACLE—HOME=f:\oracle\ora92)(=mydb)))因为已经存在一个自动配置的监听器LISTENER,它监听1521端口,因此新配的LISTENER3不要再监听1521端口.服务器SSS上有两个监听器监听客户对mydb数据库的连接请求,但是监听端口分别是1521和1522,这样当客户连接量较多时可以通过不同的端口请求,从而达到平衡负载,保证响应速度.2.3动态服务注册的配置动态服务注册是Oracle8i引入的监听器配置方式.新增监听器时只需要在配置文件listener.ora中定义其名称与监听协议地址即可,但是前提是配置了必要的初始化参数,因为动态服务注册是由PMON向监听器提供数据库服务名,实例名以及服务处理器和负荷信息的.为了确保动态服务注册可以自动完成,必须要正确设置两个初始化参数:(I)SERVICE—NAMES:用于设置数据库的服务名,可以多于一个,以区分同一个数据库的不同用途.默认值为全局数据库名114电■知识与技术(DB_NAME参数加上DB—DOMAIN参数),即数据库的全局数据库名就是它的默认服务名,如:SERVICE_NAMES=.oracle.con;(2)INSTANCE—NAME:用于设置数据库的实例名,在单实例数据库系统中往往与数据库名DB相同.如:_NAME INsTANCE—NAME=sales:如果以上两个参数的设置正确,那么默认情况下.后台进程PMON会自动的将服务信息注册到采用默认名称LISTENER, TCP/IP协议,1521端口的本地监听器上.如果要动态注册的监听器不是上述的默认配置.即名称不是LISTENER或者协议不是TCP/IP或者端口不是1521.这种情况下就必须做进一步的配置.以上述LISTENER3为例.即去掉SID_LIST_LISTENER3之后,将服务信息动态注册至LISTENER3的继续配置步骤具体为:'首先修改服务器的初始化参数文件内容.目的是告诉PMON要注册到的是哪个监听器:如果属于专用服务器类型,则必须增加LOCAL.LISTENER参数,如:LOCALUSTENER=LISTENER3:如果是共享服务器类型.则设置初始化参数DISPATCHERS中的LISTENER选项值,而不再设置LOCAL_uSTENER参数,如: DISPATCHERS="…fUSIENER=LISIENER3)":接下来,还必须通过一种命名方式(比如利用本地命名方式)将USTENER3这个名称解析成监听器的协议地址,否则无法启动该监听器.如果采用最为常用的本地命名方式.解析的办法就是将上述的"LISTENER3=…"部分复制到与listener.ora文件位置相同的另一个文件tnsnames.ora中即可3结束语Oracle数据库为了适应大型企业网络应用的需求.不仅提供了客户机与数据库服务器之间进行通信的网络解决方案.还提供了服务器与服务器通信的网络方案,但无论怎样,只要服务器要提供服务,那么数据库管理员(DBA)就必须进行监听器的配置维护,这是保证正常网络通信的最基本最重要的工作之一.参考文献:f1]OracleCorporation.Oracle9iDamb~eAdministrationFunda. mentalsIIStudentGuide.2002.1:3—1-3—26.【2】黄河.Oracle9iforWindowsNT/2000数据库系统培训教程(高级篇)[M】.北京:清华大学出版社,2003.【3]ImnnesL.Morris—Murphy着,天宏T作室译.Oracle9i数据库管理员II:备份,恢复与网络管理【M】.北京:清华大学出版社,2004.。
oracle sid与实例 -回复
oracle sid与实例-回复Oracle SID与实例是Oracle数据库中的两个重要概念。
SID(System Identifier)代表了一个唯一的数据库标识符,用于在连接数据库时唯一确定一个数据库。
而实例(Instance)则代表了一个运行时的数据库系统,包括内存结构和后台进程等组成部分。
在Oracle数据库中,一个实例可以启动并运行多个数据库,每个数据库都有一个唯一的SID。
SID在数据库启动时指定,并且在整个数据库运行时保持不变。
通过指定SID,可以连接到相应的数据库,访问其中的数据。
一个实例由若干后台进程和内存结构组成。
后台进程负责监控和管理数据库的各个方面,如用户连接、事务管理、数据恢复等。
而内存结构则用于存储数据缓存、程序缓存、共享池等数据库对象,以提高数据库的性能和可用性。
当一个数据库实例启动时,它会从硬盘加载数据库的系统文件(如控制文件、数据文件、日志文件等),并将这些数据存储到内存中的相应结构中。
此时,数据库进程会在内存中创建自己的数据字典和缓存区,并开始监听客户端连接。
在用户通过SID连接到数据库之后,Oracle会根据SID查找并连接到相应的实例,然后根据用户的权限和请求执行相应的操作。
SID与实例之间存在一对一的关系,一个SID对应一个实例,一个实例对应一个数据库。
当启动一个新的数据库实例时,需要指定一个唯一的SID,以便于其他客户端通过SID连接到该数据库。
如果要连接多个数据库,则需要为每个数据库指定不同的SID。
在实际使用中,SID和实例有着重要的应用场景。
首先,通过指定SID可以连接到特定的数据库,从而进行数据操作和管理。
其次,SID也用于在Oracle实例之间进行通信和数据共享,以实现集群和分布式数据库的特性。
此外,SID还用于监控和诊断数据库的健康状态,在故障排除和性能调优时发挥关键作用。
总之,Oracle SID与实例是Oracle数据库中的重要概念。
Oracle监听启动时由“监听程序不支持服务”引出的一系列问题--解决方案
Oracle监听启动时由“监听程序不⽀持服务”引出的⼀系列问题--
解决⽅案
由于甲⽅服务器短缺,GB领导叫在⼀个数据库上建三个oracle实例,由于之前没尝试过这样做,故⽽在本地做了⼀下测试,新建完三个实例的时候重启监听程序,就报了“监听程序不⽀持服务”的错误(只想X狗)。
然后⽤plsql连接oracle服务端是连不上的,具体错误五花⼋门。
然后⽹上⼀顿查找,最终锁定是oracle的listerner.ora配置的不对(⾃⼰意淫是由于配置了多个实例,导致此⽂件在启动的时候不知道找哪⼀个实例了)
于是乎在listerner.ora最上边加上⼀⼩段配置,指定⼀下实例就⾏了。
然后重启⼀下监听。
⼀切正常,plsql也可以愉快的连接了。
希望有问题⼤家⼀起交流,⼀起进步,完结撒花~。
oracle_listener_详解
Oracle监听-提纲o ORACLE工作机制o ORACLE监听参数o ORACLE监听功能o ORACLE监听配置o ORACLE网络构架o ORACLE精简版构造o ORACLE常见问题ORACLE工作机制o从一个用户请求开始讲,ORACLE的完整的工作机制是怎样的,首先一个用户进程发出一个连接请求,如果使用的是主机命名或者是本地服务命中的主机名使用的是机器名(非IP地址),那么这个请求都会通过DNS服务器或HOST文件的服务名解析然后传送到ORACLE监听进程,监听进程接收到用户请求后会采取两种方式来处理这个用户请求o下面我们分专用服务器和共享服务器分别采用这两种方式时的情况来讲专用服务器模式o一种方式是监听进程接收到用户进程请求后,产生一个新的专用服务器进程,并且将对用户进程的所有控制信息传给此服务器进程,也就是说新建的服务器进程继承了监听进程的信息,然后服务器进程给用户进程发一个RESEND包,通知用户进程可以开始给它发信息了,用户进程给这个新建的服务器进程发一个CONNECT包,服务器进程再以ACCEPT包回应用户进程,致此,用户进程正式与服务器进程确定连接。
我们把这种连接叫做HAND-OFF连接,也叫转换连接专用服务器模式o另一种方式是监听进程接收到用户进程的请求后产生一个新的专用服务器进程,这个服务器进程选用一个TCP/IP端口来控制与用户进程的交互,然后将此信息回传给监听进程,监听进程再将此信息传给用户进程,用户进程使用这个端口给服务器进程发送一个CONNECT包,服务器进程再给用户进程发送一个ACCEPT包,致此,用户进程可以正式向服务器进程发送信息了。
这种方式我们叫做重定向连接。
专用服务器模式o另HAND-OFF连接需要系统平台具有进程继承的能力,为了使WINDOWS NT/2000支持HAND-OFF必须在HKEY_LOCAL_MACHINE>SOFTWARE>ORACLE >HOMEX中设置USE_SHARED_SOCKET 。
oracle 新建实例和监听
一、概述Oracle 数据库是一种广泛使用的关系型数据库管理系统,通过创建实例和监听,可以实现数据库的访问和管理。
本文将介绍如何在Oracle数据库中新建实例和监听。
二、新建实例1. 实例概念在Oracle数据库中,实例是指一个完整的数据库环境,包括内存结构、进程和存储结构。
每当数据库启动时,都会创建一个新的实例,这个实例将负责管理数据库的访问和操作。
2. 实例参数设置在新建实例之前,需要首先配置实例参数。
通过修改初始化参数文件(init.ora),可以设置数据库的内存结构大小、日志文件大小、数据库块大小等参数。
这些参数将影响数据库的性能和稳定性。
3. 创建实例在Oracle数据库中,可以通过SQL*Plus工具或者Oracle企业管理器来创建新的实例。
在SQL*Plus中,可以使用CREATE DATABASE命令来创建新的数据库实例,其中包括数据库的名称、存储路径、字符集等基本信息。
在企业管理器中,可以通过图形化界面来完成实例的创建,简化了操作步骤。
4. 实例初始化一旦创建了新的实例,就需要初始化数据库的结构和数据。
这包括创建表空间、用户和角色,导入数据和索引等操作。
通过执行SQL脚本或者使用数据库工具,可以完成这些初始化工作,让数据库可以正常运行。
三、新建监听1. 监听概念在Oracle数据库中,监听是一个网络服务,负责接收客户端的连接请求,并将其转发给数据库实例。
通过监听,客户端可以与数据库建立通信,实现数据的交互和操作。
2. 监听配置要新建监听,首先需要配置监听参数。
通过修改监听参数文件(listener.ora),可以设置监听的名称、端口号、协议等信息。
这些参数将影响监听的工作方式和性能表现。
3. 创建监听在Oracle数据库中,可以使用Net Configuration Assistant工具来创建新的监听。
通过该工具,可以选择监听类型(本地监听或远程监听)、监听协议(TCP/IP、IPC等)等参数,并且可以测试监听的可用性。
Oracle数据库监听配置与报错解决方法
Oracle数据库监听配置与报错解决方法作者:范美卉张俊萌来源:《电脑知识与技术》2023年第24期关键词:监听日志;Oracle数据库;监听器中图分类号:TP311 文献标识码:A文章编号:1009-3044(2023)24-0073-030 引言想要使用Oracle数据库,首先需要用户与数据库建立连接,而怎么在两者之间建立连接,Oracle使用了一个叫网络服务的概念,从而客户端或者中间层的应用服务器与数据库服务器能建立连接,并能在两者之间传递数据。
在客户端,网络服务作为后台运行的进程,在数据库服务器端,网络服务则通过一个叫“监听器”的组件接收来自客户端的连接请求。
监听器(LIS⁃TENER)是位于服务器端的、独立运行的一个后台进程,运行在服务器端,但独立于数据库服务器单独运行,在数据库没有启动的时候,监听器也能独立运行。
1 Oracle 数据库监听配置Oracle监听负责监听客户端传入的连接请求,同时也负责调整服务器的连接负荷。
客户端试图连接数据库服务器时,监听器将接收到客户端的请求并将其传递给服务器进行处理。
一旦客户端与服务器建立连接,它们之后将直接进行通信,而不再需要监听器的介入,监听器将保持空闲状态。
dbca建库后一般会有默认配置好的监听,默认服务端口是1521,通常一个库一个监听就足够,但如果需要处理大量并发请求数,就可能需要配置多个监听,非默认监听的端口号设置成大于1024,不同监听之间服务名和端口号不能一样[1]。
配置监听器有两种方法。
1.1 通过图形界面工具Net Manager如图1所示,选中图中的Oracle Net配置下的本地树形目录中的监听程序项,再点击左侧绿色的“+”按钮添加监听程序,点击监听程序目录,新加的监听器名称默认为LISTENER。
选中该名称,窗口右侧栏的下拉选项中含有四个选项:一般参数、监听位置、数据库服务、其他服务,选中“监听位置”,点击添加地址按钮。
在出现的网络地址栏的协议下拉选项中选中“TCP/IP”,主机文本框中输入主机名称或IP地址(如果主机即用作服务端也作为客户端,输入两项之一均有效;如果主机作为服务端并需要通过网络连接,建议输入IP地址),端口文本框中输入数字端口,默认是1521,也可以自定义任意有效数字端口[2]。
oracle数据库运行机制和基本原理
Oracle数据库是一种关系型数据库管理系统,它采用了客户/服务器模式,可以在各种不同的评台上运行。
其运行机制和基本原理是数据库领域的重要内容,我们将通过以下几个方面来详细介绍。
1. Oracle数据库的体系结构Oracle数据库的体系结构包括实例和数据库。
实例是由一个或多个进程组成,负责处理客户端的请求和管理数据库的物理结构;数据库是由数据文件组成,用来存储数据和控制文件。
实例和数据库之间通过监听器进行通信,客户端通过监听器访问数据库。
2. Oracle数据库的运行原理Oracle数据库的运行原理包括数据库的启动和关闭过程。
数据库的启动过程包括加载实例和数据库文件、分配内存、打开数据库并监听客户端请求;数据库的关闭过程包括关闭实例和数据库文件、释放内存、关闭数据库并停止监听器。
3. Oracle数据库的存储结构Oracle数据库的存储结构包括内存结构和磁盘结构。
内存结构包括数据库SGA和PGA,SGA用来存储数据库的共享数据和控制信息,PGA用来存储客户端的私有数据;磁盘结构包括数据文件、控制文件和日志文件,数据文件用来存储数据库的数据,控制文件用来记录数据库的元数据,日志文件用来记录数据库的事务日志。
4. Oracle数据库的并发控制Oracle数据库的并发控制包括锁和多版本并发控制。
锁是用来控制对共享资源的并发访问,包括共享锁、排他锁和意向锁;多版本并发控制是一种乐观并发控制方式,每个事务都有自己的版本,可以并发访问相同的数据,不会相互影响。
5. Oracle数据库的恢复机制Oracle数据库的恢复机制包括日志文件和闪回技术。
日志文件用来记录数据库的操作,包括重做日志和撤销日志,可以用来恢复数据库的状态;闪回技术可以回滚数据库到历史状态,包括闪回查询和闪回表。
通过以上内容的介绍,我们对于Oracle数据库的运行机制和基本原理有了一定的了解。
Oracle数据库作为一种成熟的关系型数据库管理系统,其运行机制和基本原理对于数据库管理员和开发人员来说是非常重要的,可以帮助他们更好地理解、管理和优化数据库。
Oracle 监听器 Listener资料
Oracle 监听器Listener资料Oracle 监听器Listener 是一个重要的数据库服务器组件,在整个Oracle 体系结构中,扮演着重要的作用。
它负责管理Oracle 数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是TCP 1521端口)上监听连接请求,并将连接转发给数据库,下面的部分,会从几个方面对监听器进行简单介绍。
1.监听器的功能从当前的Oracle 版本看,Listener 主要负责下面的几方面功能:1. 监听客户端请求。
监听器运行在数据库服务器之上,与Oracle 实例(可为多个)相关关联,是一个专门的进程process,在Windows 的服务项目或者Linux 的运行进程列表中,都会看到对应的运行进程。
Windows 上名为TNSLSNR,Linux/Unix 平台上是lsnrctl。
监听器守候在服务器制定端口(默认为:1521),监听客户端的请求。
2. 为客户端请求分配Server Process。
监听器只负责接听请求,之后将请求转接给Oracle Server Process。
在Oracle 的服务模式下,客户端进程是不允许直接操作数据库实例和数据,而是通过一个服务进程Server Process(也称为影子进程)作为代理。
监听器接受到请求之后,就向操作系统(或者Dispatcher 组件)要求fork (或分配)一个Server Process 与客户端相连。
3. 注册实例服务。
本质上讲,Listener 是建立实例和客户端进程之间联系的桥梁。
Listener 与实例之间的联系,就是通过注册的过程来实现的。
注册的过程就是实例告诉监听器,它的数据库数据库实例名称instance_name 和服务名service_names。
监听器注册上这样的信息,对客户端请求根据监听注册信息,找到正确的服务实例名称。
目前Oracle 版本中,提供动态注册和静态注册两种方式。
Oracle数据库监听配置
近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server)。
本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路,愿对广大网友与读者有一些帮助。
一、监听器(LISTENER)监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。
既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。
二、本地服务名(Tnsname)Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。
Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。
三、Oracle网络连接配置方法配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle服务端或客户端的配置)。
在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如:$ netmgrWindows下启动Net Manager图形窗口如下图示:图(一)1、 Oracle监听器配置(LISTENER)如图(一)示,选中树形目录中监听程序项,再点击左上侧“+”按钮添加监听程序,点击监听程序目录,默认新加的监听器名称是LISTENER(该名称也可以由任意合法字符命名)。
oracle数据库tns配置方法详解
oracle数据库tns配置⽅法详解TNS简要介绍与应⽤Oracle中TNS的完整定义:transparence Network Substrate透明⽹络底层,监听服务是它重要的⼀部分,不是全部,不要把TNS当作只是监听器。
TNS是Oracle Net的⼀部分,专门⽤来管理和配置Oracle数据库和客户端连接的⼀个⼯具,在⼤多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不⽤配置TNS也可以连接Oracle数据库,⽐如通过JDBC。
如果通过TNS连接Oracle,那么客户端必须安装Oracle client程序。
Oracle当中,如果想访问某个服务器,必须要设置TNS,它不像SQL SERVER那样在客户端⾃动列举出在局域⽹内所有的在线服务器,只需在客户端选择需要的服务器,然后使⽤帐号与密码登录即可。
⽽Oracle不能⾃动列举出⽹内的服务器,需要通过读取TNS配置⽂件才能列出经过配置的服务器名。
配置⽂件名⼀般为:tnsnames.ora,默认路径:%ORACLE_HOME%\network\admin\tnsnames.ora上图中的CGDB和STDCG就是对应的TNS,HOST是指向数据库服务器的IP,当然局域⽹内⽤计算机名称也是可以的。
通过客户端Net Manager创建⼀个连接到数据库服务器的连接服务时,实际上就是在tnsnames.ora⽂件中增加了⼀个TNS的内容。
TNS的详细配置⽂件TNS的配置⽂件包括服务器端和客户端两部分。
服务器端有listener.ora、sqlnet.ora和tnsnames.ora,如果通过OCM(Oracle Connection Manage)和域名服务管理客户端连接,服务器端可能还包括cman.ora等⽂件;客户端有tnsnames.ora,sqlnet.ora。
Oracle所有的TNS配置⽂件的默认路径:%ORACLE_HOME%\network\adminlistener.ora:监听器配置⽂件,成功启动后是驻留在服务器端的⼀个服务。
oracle tnslsnr -inherit参数
在Oracle数据库中,TNSLSNR(Transparent Network Substrate)是一个网络服务组件,用于提供客户端和数据库服务器之间的通信连接。
TNSLSNR进程负责监听网络上的连接请求,并将这些请求路由到正确的数据库实例。
`-inherit`参数是TNSLSNR进程的一个选项,用于继承其他TNSLSNR实例的配置。
当使用`-inherit`参数时,新的TNSLSNR实例将获取指定父实例的配置,包括监听地址、端口号、服务名等。
这使得在多个TNSLSNR实例之间进行配置复制和统一管理变得方便。
要使用`-inherit`参数,请在启动TNSLSNR进程时指定该选项及其参数值。
以下是一个示例命令:
```bash
tnslsnr -inherit=parent_instance_name
```
在上面的命令中,将`parent_instance_name`替换为要继承配置的父TNSLSNR实例的名称。
需要注意的是,使用`-inherit`参数时,新的TNSLSNR实例将只继承父实例的配置,不会自动创建新的监听地址或端口号。
因此,在使
用`-inherit`参数之前,确保已经正确配置了父TNSLSNR实例,并且新的TNSLSNR实例具有正确的监听地址和端口号配置。
oracle DB_NAME、INSTANCE_NAME、ORACLE_SID
概述DB_NAME与INSTANCE_NAMEDB_NAME 数据库名称,也就是数据库的名字标示。
这里,数据库里可能有多个实例,比如RAC里的多节点,这多个节点是不同的实例,但是却有相同的名字,他们的DB_NAME 是相同的,但是Instance_name是不同的。
DB_NAME会保持在数据文件头里,所以更改DB_NAME不能仅仅修改parameter,还需要用nid来进行更改,并且更改后还需要手工做些工作,使其生效,一般情况下不建议修改。
DB_NAME与DB_UNIQUE_NAMEDB_UNIQUE_NAME这在另一个HA的应用,Dataguard会经常提及的,和DB_NAME不一样的作用,在DG里,要求物理DG,主从库都有一样的DB_NAME,虽然他们和RAC 不一样,并不是同一个库。
这里是数据库的唯一名字。
但是他们的DB_UNIQUE_NAME是不一样的,用以进行不同的标示。
DB_UNQUIE_NAME的会影响到Service_names,也会影响到动态监听的时候的service_name。
DB_NAMEdb_name是数据库的名字,oracle本身可能是比较有用的,对我们而言没有什么太多的用处,db_name记录在controlfile,datafile_header,redo中。
在建库时,db_name被限制为最长8个字符。
db_name还有一个非常重要的作用就是动态注册监听,不管是否指定了service_name,或者说service_name的值是什么,pmon都会使用db_name动态注册监听的。
ORACLE_SIDsid为在host上用sid来标示实例的共享内存的,尽管v$instance中字段instance_name看起来是实例名,但是实际上存储的是sid,在win下sid不能重复,在unix/linux下只要不同版本的oracle安装在不同的oracle_home下就可以创建相同sid的实例,但是win下不可以,主要是受到windows服务的限制,在服务中不能存在服务名相同的oracle服务(OracleServiceSID)。
两个实例启动两个监听
关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
Listener.ora文件的例子
#listener.ora Network Configuration File: #E:\oracle\product\10.1.0\Db_2\NETWORK\ADMIN\listener.ora
2. 则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和service_name
3. 如果listener进程没有问题的话,建立与listener进程的连接。
4. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。
)
)
#监听器的名字,一台数据库可以有不止一个监听器
#再向下面是监听器监听的协议,ip,端口等,这里使用的tcp1521端口,并且使#用的是主机名
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))
5. 这时候网络连接已经建立,listener进程的历史使命也就完成了。
#---------------
几种连接用到的命令形式
1.sqlplus / as sysdba 这是典型的操作系统认证,不需要listener进程
2.sqlplus sys/oracle 这种连接方式只能连接本机数据库,同样不需要listener进程
oracle监听
oracle监听Oracle监听概述Oracle监听是Oracle数据库中一个重要的组件,它负责接收并处理客户端应用程序的连接请求。
作为数据库服务器的入口点,监听程序的正常运行对于数据库的可用性至关重要。
本文将探讨Oracle 监听的功能、配置和管理。
功能Oracle监听的主要功能是监听客户端应用程序发起的连接请求,并将其转发给相应的数据库实例。
当客户端应用程序需要连接到Oracle数据库时,它将发送一个连接请求到指定的监听程序,监听程序会在数据库服务器上的某个端口上监听连接请求。
一旦收到连接请求,监听程序将会验证客户端的身份,并将连接请求转发给正确的数据库实例。
配置在Oracle数据库中,监听程序通过监听文件进行配置。
监听文件通常是一个文本文件,其中包含了监听程序的配置信息。
在监听文件中,我们可以指定监听程序的监听协议、监听地址、监听端口以及要连接的数据库实例等信息。
通常,监听程序的配置文件名为tnsnames.ora。
管理对于Oracle监听的管理主要包括启动、停止和重启监听程序。
Oracle提供了很多不同的方式来管理监听程序。
以下是一些常见的管理监听程序的方法:命令行管理工具:可以使用Oracle提供的命令行管理工具如lsnrctl来管理监听程序。
使用命令行工具可以启动、停止、重启监听程序,同时也可以监控和配置监听程序。
图形化管理工具:Oracle Enterprise Manager是一个功能强大的图形化管理工具,它可以用来管理Oracle数据库和监听程序。
通过Oracle Enterprise Manager,管理员可以轻松地管理监听程序,并获得实时的性能信息。
自动启动:在Oracle数据库安装完成后,监听程序通常会被自动启动。
管理员只需要确保监听程序在数据库服务器启动时自动启动即可。
故障排除当出现连接问题或监听程序不可用时,可能需要进行故障排除以确定问题的原因。
以下是一些常见的故障排除步骤:检查监听程序的状态:通过使用命令行管理工具lsnrctl status可以查看监听程序的状态。
ORACLE 多实例监听的配置
SID_LIST_LISTENER1 = (SID_LIST =
(SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /opt/oracle/product/9.2) (PROGRAM = extproc)
) (SID_DESC =
(GLOBAL_DBNAME = ora9) (ORACLE_HOME = /opt/oracle/product/9.2) (SID_NAME = ora9) ) )
tnsname.ora 文件
# TNSNAMES.ORA Network Configuration File:
/opt/oracle/product/9.2/network/admin/tnsnames.ora # Generated by Oracle configuration tools.
多实例监听的配置
ORACLE 多实例监听的配置
三种情况: 1、一个监听在一个 IP 一个端口上监听多个实例 2、一个监听在不同 IP 不同端口上监听多个实例 3、多个监听监听多个实例
情况 1: listener.ora 文件,
# LISTENER.ORA Network Configuration File: /opt/oracle/product/9.2/network/admin/listener.ora # Generated by Oracle configuration tools.
) (CONNECT_DATA =
(SID = PLSExtProc) (PRESENTATION = RO) ) )
情况 2:
# LISTENER.ORA Network Configuration File: /opt/oracle/product/9.2/network/admin/listener.ora # Generated by Oracle configuration tools.
oracle 数据库实例名
oracle 数据库实例名Oracle数据库实例名是指Oracle数据库中定义的一个唯一标识符,用于区分不同的实例。
一个Oracle数据库可以拥有多个实例,每个实例都是一个独立的工作环境,包含自己的SGA(System Global Area)和PGA(Process Global Area),以及独立的进程和线程。
每个实例都有独立的配置参数和数据库对象,而且不同实例之间的数据无法共享。
实例名是Oracle数据库安装时指定的,默认实例名称为ORCL。
在实际应用中,一个Oracle数据库可以包含多个实例,不同的实例之间通常是互相独立的,它们使用不同的内存和进程资源。
这种方式可以提高应用程序的并发访问性能,同时降低系统资源使用率。
在Oracle数据库的运营中,实例名被广泛的应用于管理,监控和故障处理。
例如,对于大型应用系统,管理员通常会启动多个实例,每个实例负责处理一个特定的功能区块。
这些实例之间可以联合工作,通过实例之间的网络连接进行数据共享,以实现高性能的数据处理和应用响应时间。
在创建实例时,需要指定不同的启动参数,例如:SGA大小、PGA大小、最大连接数等等。
实例名也可以影响到连接字符串的编写方式。
连接名是指在应用程序中使用的连接字符串,它通常包含了实例名、主机名、端口号等信息。
当数据库安装在本地主机时,可以通过连接名直接连接到数据库实例;而当数据库安装在远程主机时,连接名指向的是远程主机的监听服务,由监听服务将连接路由到实际的数据库实例。
总之,Oracle数据库实例名是数据库管理中重要的概念,它决定了不同实例之间的隔离和独立,同时也影响了应用程序的连接方式和性能特征。
在实际应用中需要根据实际需求选择合适的实例名和配置参数,以达到最优的数据库性能和应用可用性。
Linux下重启oracle服务及监听器和实例详解
Linux下重启oracle服务及监听器和实例详解⼀、在Linux下重启Oracle数据库及监听器:⽅法1:⽤root以ssh登录到linux,打开终端输⼊以下命令:cd $ORACLE_HOME #进⼊到oracle的安装⽬录dbstart #重启服务器lsnrctl start #重启监听器cd $ORACLE_HOME #进⼊到oracle的安装⽬录dbstart #重启服务器lsnrctl start #重启监听器-----------------------------------⽅法2:Sql代码cd $ORACLE_HOME/bin #进⼊到oracle的安装⽬录./dbstart #重启服务器./lsnrctl start #重启监听器-----------------------------------⽅法3:(1)以oracle⾝份登录数据库,命令:su -oracle(2)进⼊Sqlplus控制台,命令:sqlplus /nolog(3)以系统管理员登录,命令:connect / as sysdba(4)启动数据库,命令:startup(5)如果是关闭数据库,命令:shutdown immediate(6)退出sqlplus控制台,命令:exit(7)进⼊监听器控制台,命令:lsnrctl(8)启动监听器,命令:start(9)退出监听器控制台,命令:exit⼆、重启实例:(1)切换需要启动的数据库实例:export ORACLE_SID=C1(2)进⼊Sqlplus控制台,命令:sqlplus /nolog(3)以系统管理员登录,命令:connect / as sysdba(4)如果是关闭数据库,命令:shutdown abort(5)启动数据库,命令:startup(6)退出sqlplus控制台,命令:exit以上所述是⼩编给⼤家介绍的Linux下重启oracle服务及监听器和实例详解,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
oracle 监听详解
USE_SHARED_SOCKET
方法三:
在数据库端(也可以是另外的机器,但是cman的机器必须和数据库都在防火墙的后面) 安装了cman的前提下,启动cman,然后开放防火墙端的1630端口(看cman开的是什 么端口啦),最后在客户端的tnsnames.ora文件中添加: cmantest = (description = (address_list = (address = <- first address is to CMAN (protocol=tcp) (host=hostname or ip of cman) (port=1610) )
ORACLE监听详解
月度会议
提纲
ORACLE工作机制 ORACLE监听参数 ORACLE监听功能 ORACLE监听配置 ORACLE网络构架 ORACLE精简版构造 ORACLE常见问题
ORACLE 工作机制
从一个用户请求开始讲,ORACLE的完整的工作机制是怎样
的,首先一个用户进程发出一个连接请求,如果使用的是主机
命名或者是本地服务命中的主机名使用的是机器名(非IP地 址),那么这个请求都会通过DNS服务器或HOST文件的服
务名解析然后传送到ORACLE监听进程,监听进程接收到用
户请求后会采取两种方式来处理这个用户请求 下面我们分专用服务器和共享服务器分别采用这两种方式时 的情况来讲
方法二:
1、首先将数据库实例改为SHARED SERVER模式 2、以SYSDBA登录SQLPLUS,通过SQLPLUS生成系统当前的参数设置文件 pfile:create pfile='d:\init.ora' from spfile; 3、修改d:\init.ora文件,在其中增加(用editplus编辑):*.service_names='your service name'和*.dispatchers='(address=(protocol= tcp)(host=localhost)(port=1521)(dispatchers=1)' 4、生成新的SPFILE:create spfile from pfile='d:\init.ora'; 5、重启动数据库。 6、在防火墙中开放1521端口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/dbhost/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=173.0.2.113)(PORT=1521)))
DCCB1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 173.0.2.113)(PORT =
1521)) ) (CONNECT_DATA = (SERVICE_NAME = dccb1) )
)
DCCB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 173.0.2.113)(PORT =
件。
[oracle@dbhost admin]$ more listener.ora # listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools.
Total System Global Area 1603411968 bytes
Fixed Size
2213776 bytes
Variable Size
989857904 bytes
Database Buffers
603979776 bytes
Redo Buffers
7360512 bytes
Database mounted.
network : snaumihi_inithostinfo network : snaumbg_gmt network : naedpwd_encrypt network : naumbsb_bld_singlebyte network : ztapis
network : nlgh
2. 编辑 ORACLE_HOME 下的 network/admin/下的 listener.ora 文
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=173.0.2.113)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias
LISTENER
Version
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Listener Log File
/u01/app/oracle/diag/tnslsnr/dbhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=173.0.2.113)(PORT=1521)))
Oracle 数据库 一个监听多个实例设置
Edit by shuyun
有时,为了测试数据库,我们需要在同一台服务器建两个数 据库实例,用同一个监听远程访问这俩数据库,这样我们就要做一些 配置。
图形界面下: 使用网络配置工具的方法 一、 打开网络配置工具
二、 设置 Profile,至少选择 tnsname 和 h个 Service Name
五、 配置监听
在 shell 下就分一下几个步骤:
1. 编辑 ORACLE_HOME 下的 network/admin/下的 shrept.lst 文件
[oracle@dbhost admin]$ more shrept.lst # function entry points for genclntsh.sh
Database opened.
SQL>
4. 连接 dccb 试试
SQL> conn sys/system@dccb as sysdba Connected.
5. 连接 dccb1 并启动
SQL> conn sys/system@dccb1 as sysdba Connected to an idle instance. SQL> startup; ORACLE instance started.
Start Date
11-NOV-2015 17:28:47
Uptime
0 days 0 hr. 0 min. 0 sec
Trace Level
off
Security
ON: Local OS Authentication
SNMP
OFF
Listener Parameter File
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 11 17:29:38 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL>
3. 连接并启动数据库
SQL> conn /as sysdba Connected to an idle instance. SQL> startup; ORACLE instance started.
(GLOBAL_DBNAME = dccb1) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) (SID_NAME = dccb1) ) )
LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 173.0.2.113)(PORT =
Total System Global Area 1202556928 bytes
Fixed Size
2212816 bytes
Variable Size
369101872 bytes
Database Buffers
822083584 bytes
Redo Buffers
9158656 bytes
Database mounted.
1521)) ) (CONNECT_DATA = (SERVICE_NAME = dccb) )
)
这样就 OK 了!
我们来测试一下连接:
1. 首先启动监听
[root@dbhost ~]# su - oracle [oracle@dbhost ~]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-NOV-2015 17:28:46
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = dccb) (ORACLE_HOME =
/u01/app/oracle/product/11.2.0/dbhome_1) (SID_NAME = dccb)
) (SID_DESC =
1521)) )
ADR_BASE_LISTENER = /u01/app/oracle
3. 编辑 ORACLE_HOME 下的 network/admin/下的 tnsnames.ora
文件。
[oracle@dbhost admin]$ more tnsnames.ora # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.or a # Generated by Oracle configuration tools.
Database opened.
6. 连接 dccb1 试试
SQL> conn sys/system@dccb1 as sysdba Connected.
Services Summary...
Service "dccb" has 1 instance(s).
Instance "dccb", status UNKNOWN, has 1 handler(s) for this service...
Service "dccb1" has 1 instance(s).
Instance "dccb1", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
2. 进入 sqlplus