Listener.ora、sqlnet.ora、tnsnames.ora三个配置文件区别

合集下载

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.。

PLSQLDeveloper连接Oracle数据库详细配置方法

PLSQLDeveloper连接Oracle数据库详细配置方法

PLSQLDeveloper连接Oracle数据库详细配置⽅法 近段时间很多⽹友提出监听配置相关问题,客户终端(Client)⽆法连接服务器端(Server)。

本⽂现对监听配置作⼀简单介绍,给出PL/SQL Developer 连接Oracle数据库详细配置⽅法,并提出⼀些客户终端⽆法连接服务器端的解决思路,愿对⼴⼤⽹友与读者有⼀些帮助。

⼀、监听器(LISTENER)监听器是Oracle基于服务器端的⼀种⽹络服务,主要⽤于监听客户端向数据库服务器端提出的连接请求。

既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进⾏监听器的设置也是在数据库服务器端完成的。

⼆、本地服务名(Tnsname)Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进⾏合法检查,如果连接请求有效,则进⾏连接,否则拒绝该连接。

本地服务名是Oracle客户端⽹络配置的⼀种,另外还有Oracle名字服务器(Oracle Names Server)等。

Oracle常⽤的客户端配置就是采⽤的本地服务名,本⽂中介绍的也主要是基于本地服务名的配置。

三、Oracle⽹络连接配置⽅法配置Oracle服务器端与客户端都可以在其⾃带的图形化Oracle⽹络管理器(Oracle Net Manager)⾥完成(强烈建议在这个图形化的⼯具下完成Oracle服务端或客户端的配置)。

Windows下启动Net Manager图形窗⼝如下图⽰:1、 Oracle监听器配置(LISTENER)如上图⽰,选中树形⽬录中监听程序项,再点击左上侧“+”按钮添加监听程序,点击监听程序⽬录,默认新加的监听器名称是LISTENER(该名称也可以由任意合法字符命名)。

选中该名称,选中窗⼝右侧栏下拉选项中的“监听位置”,点击添加地址按钮。

在出现的⽹络地址栏的协议下拉选项中选中“TCP/IP”,主机⽂本框中输⼊主机名称或IP地址(如果主机即⽤作服务端也作为客户端,输⼊两项之⼀均有效;如果主机作为服务端并需要通过⽹络连接,建议输⼊IP地址),端⼝⽂本框中输⼊数字端⼝,默认是1521,也可以⾃定义任意有效数字端⼝。

协议适配器错误的问题

协议适配器错误的问题

协议适配器错误的问题今天遭遇ORA-12560: : 协议适配器错误的问题,经过⼀番努⼒问题已经解决,与⼤家共享。

造成ORA-12560: : 协议适配器错误的问题的原因有三个:1.监听服务没有起起来。

windows平台个⼀如下操作:开始---程序---管理⼯具---服务,打开服务⾯板,启动home92listener服务。

2.database instance没有起起来。

windows平台如下操作:开始---程序---管理⼯具---服务,打开服务⾯板,启动serviceXXXX,XXXX就是你的database .3.注册表问题。

regedit,然后进⼊HKEY_LOCAL_MACHINE\SOFTWARE\\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database .或者右⼏,属性--⾼级--环境变量---系统变量--,变量名=oracle_,变量值=XXXX,XXXX就是你的database SID.或者进⼊sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.经过以上步骤,就可以解决问题。

22222222222222222222我们知道oracle客户端连接时涉及⽤到的⼏个配置⽂件有:sqlnet.ora、tnsnames.ora、listener.ora。

其中sqlnet.ora和tnsnames.ora是在客户端的配置⽂件,listener.ora则是在服务器端的监听配置⽂件。

想要顺利的连接上服务器端,⾸先要确保两者之间的⽹络通畅。

其⼆在服务器上配置好监听程序。

其三是客户端配置好相应的tnsnames.ora。

在配置服务器端监听程序时要注意⼏点: 1、在服务器上的/etc/hosts⽂件中需要有127.0.0.1 localhost 这⼀条.默认情况下是有的。

若没有则在启动监听器是会报TNS-12537:TNS:connection closed的错误.同时最好添加上你的服务器IP 主机名。

Oracle 几个服务各代表什么作用

Oracle 几个服务各代表什么作用

Oracle 几个服务各代表什么作用.txt如果中了一千万,我就去买30套房子租给别人,每天都去收一次房租。

哇咔咔~~充实骑白马的不一定是王子,可能是唐僧;带翅膀的也不一定是天使,有时候是鸟人。

Oracle 几个服务各代表什么作用HOME_NAME - Oracle Home名称,如OraHome92、OraHome81(1)OracleServiceSID数据库服务,这个服务会自动地启动和停止数据库。

如果安装了一个数据库,它的缺省启动类型为自动。

服务进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。

(2)OracleHOME_NAMETNSListener监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQL*Net网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。

服务进程为TNSLSNR.EXE,参数文件Listener.ora,日志文件listener.log,控制台LSNRCTL.EXE,默认端口1521、1526。

(3)OracleHOME_NAMEAgentOEM代理服务,接收和响应来自OEM控制台的任务和事件请求,只有使用OEM管理数据库时才需要,它的缺省启动类型为自动。

服务进程为DBSNMP.EXE,参数文件snmp_rw.ora,日志文件nmi.log,控制台LSNRCTL.EXE,默认端口1748。

(4)OracleHOME_NAMEClientCache名字缓存服务,服务缓存用于连接远程数据库的Oracle Names 数据。

它的缺省启动类型是手动。

然而,除非有一台Oracle Names服务器,否则没有必要运行这个服务。

服务进程为ONRSD.EXE,参数文件NAMES.ORA,日志文件ONRSD.LOG,控制台NAMESCTL.EXE。

Oracle数据库监听配置

Oracle数据库监听配置

Oracle数据库监听配置关键字: oracle listener一、监听器(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 网络管理器,如:$ netmgr默认即可在Oracle安装目录下找到监听配置文件 (Windows下如D:oracleora92networkadminlistener.ora,Linux/Unix下$ ORACLE_HOME/network/admin/listerer.ora)。

默认即可在Oracle安装目录下找到本地服务名配置文件 (Windows下如D:oracleora92networkadmintnsnames.ora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnames.ora)。

Oracle 几个服务各代表什么作用

Oracle 几个服务各代表什么作用

Oracle 几个服务各代表什么作用? 收藏注:SID - 数据库标识HOME_NAME - Oracle Home名称,如OraHome92、OraHome81(1)OracleServiceSID数据库服务,这个服务会自动地启动和停止数据库。

如果安装了一个数据库,它的缺省启动类型为自动。

服务进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQL PLUS.EXE。

(2)OracleHOME_NAMETNSListener监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过SQL*Ne t 网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。

服务进程为TNSLSNR.EXE,参数文件Listener.ora,日志文件listener.log,控制台LSNRCTL.EXE,默认端口1 521、1526。

(3)OracleHOME_NAMEAgentOEM代理服务,接收和响应来自OEM控制台的任务和事件请求,只有使用OEM管理数据库时才需要,它的缺省启动类型为自动。

服务进程为DBSNMP.EXE,参数文件snmp_rw.ora,日志文件nmi.log,控制台LSNRCTL.EXE,默认端口1748。

(4)OracleHOME_NAMEClientCache名字缓存服务,服务缓存用于连接远程数据库的Oracle Names 数据。

它的缺省启动类型是手动。

然而,除非有一台Oracle Names 服务器,否则没有必要运行这个服务。

服务进程为ONRSD.EXE,参数文件N AMES.ORA,日志文件ONRSD.LOG,控制台NAMESCTL.EXE。

(5)OracleHOME_NAMECMAdmin连接管理服务,是构建Connection Manager服务器所用,只有服务器作为Connection Manager才需要,它的缺省启动类型是手动。

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数据库TNS详解

Oracle数据库TNS详解⽬录阐述介绍SQL Serve 和 Oracle⼀些区别配置⽂件和路径举例说明总结阐述TNS是Oracle数据库正确使⽤的必备条件之⼀,它⽤来管理和配置Oracle连接⼯具,⽬前我有⽤的⼯具如:SQL Server和Toad,它像是⼀个中间的桥梁,让客户端和数据库可以进⾏通讯,也就是我们平时的读写等等。

简要介绍透明⽹络底层(transparence Network Substrate),它最重要的⼀个作⽤是监听服务,很多情况下都要配置DNS,JDBC这⾥不考虑。

SQL Serve 和 Oracle⼀些异同点相同点:语法基本⼀致,使⽤也都类似,⼯具只是载体不同点:因为本篇主要讲述TNS,所以主要说关于TNS不同点。

SQL Serve会⾃动列出局域⽹中出现的服务器,只需要在⼯具上⾯选择指定服务器,然后输⼊账号和密码即可。

Oracle则不⼀样,不能⾃动列出局域⽹中的服务器,所以必须要配置TNS。

配置⽂件和路径配置⽂件:tnsnames.ora默认路径:%ORACLE_HOME%\network\admin\tnsnames.ora,%ORACLE_HOME%通常在环境变量中使⽤。

举例说明# tnsnames.ora Network Configuration File: C:\oracle\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora# Generated by Oracle configuration tools.GSSPRD=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.**.**.**)(PORT=1505))(CONNECT_DATA=(SERVICE_NAME= GSSED)))GSSPE=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.**.**.**)(PORT=1505))(CONNECT_DATA=(SERVICE_NAME=GSSPE)))相信也没⼈会攻击我的IP,不过还是隐藏。

oracle学习小结

1.Oracle 10g安装:全局数据库名:ORCL SID:ORCLOracleOraDb10g_home1TnsListerner:该服务启动数据库服务器的监听器,监听器接受来自客户端应用程序的连接请求,若监听器未启动,则客户端将无法连接到数据库服务器OracleService Orcl:其中Orcl是数据库实例的SID,该服务启动系统标识符为Orcl的数据库实例。

OracleDBConsoleorcl:该服务启动OEM。

Oracle产品安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接。

服务器端配置监听器listener.ora,客户端配置网络服务名tnsnames.ora。

服务器监听器文件listener.ora配置服务器端监听器配置信息包括监听协议、地址及其他相关信息。

配置信息保存在名为listener.ora的文件中。

在安装服务器软件时自动配置一个监听器客户端网络服务名tnsnames.ora文件配置客户端的网络服务名配置信息包括服务器地址、监听端口号和数据库SID等,与服务器的监听器建立连接。

配置信息保存在名为tnsnames.ora的文件中Oracle中的Net Configuration Assistant和Net Manager工具都能用来配置监听器和网络服务名服务器监听器文件listener.ora配置2.创建数据库实例(可以通过DBCA创建数据库实例)OEM:http://lsc:1158/em3.表空间创建表空间:CREA TE TABLESPACE "JYSOFT"DA TAFILE 'D:\SOFTWARE\ORACLE\PRODUCT\10.2.0\ORADA TA\ORCL\JYSOFT.DBF' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTOcreate tablespace "test" datafile'd:\test.dbf'size100m autoextend on next10m maxsize 1024m;删除表空间:drop tablespace jysoft including contents;相应的数据文件oracle\product\10.2.0\oradata\orcl\jysoft.dbf手动删除4.用户创建用户:Create user jysoft identified by passDefault tablespace jysoft;删除用户:Drop user jysoft cascade;Alter user jysoft identified by pass;5.权限控制:Grant resource,dba to jysoft;Grant select on emp to jysoft;Revoke select all emp from jysoft;Revoke dba from jysoft;6.表创建表:create table student(id number(4) not null,stuno number(4) not null unique,name varchar2(50),score number(8,2),birth date default sysdate,pic blob,remark clob)复制表:create table jysoft.emp as select * from scott.emp;插入:insert into emp select * from scott.emp;insert into student (id, stuno) values (2,2);alter table student add (test number(4));alter table student modify (test default5555);alter table student drop column test;alter table student drop constraint pk_stu;alter table student add (constraint stuno_uk unique(stuno));alter table student add (constraint pk_stu primary key (ID));alter table student add (constraint score_check check (score>=0and score<=100));drop table jysoft.emp;7.创建索引create index birth_idx on student(birth);drop index birth_idx;8.同义词:create public synonym student for jysoft.student;select * from student;drop public synonym student;9.数据库链接:create public database link jysoft_link connect to jysoft identified by pass using'orcl';select * from student@jysoft_link;10.创建序列器create sequence student_id_sminvalue1maxvalue999999999999999999999999999start with1increment by1cache20;select student_id_s.nextval from dual;drop sequence student_id_s;11.创建触发器(主键自增)create or replace trigger student_id_tbefore insert on student for each rowbeginselect student_id_s.nextval into :new.id from dual;end;12.创建视图create view v_student as select stuno,name from student;13.系统命令select rowid, rownum,t.* from student t;SQL> variable srowid varchar2(20);SQL> exec select rowid into :srowid from scott.emp t where empno=7369;PL/SQL procedure successfully completedsrowid---------AAAMfPAAEAAAAAgAAASQL> select empno,ename from scott.emp t where rowid=:srowid;EMPNO ENAME----- ----------7369 SMITHsrowid---------AAAMfPAAEAAAAAgAAAinsert into student(stuno,birth) values(2,TO_DATE('2010-01-01', 'YYYY-MM-DD')); select stuno,to_char(birth,'yyyy-mm-dd hh:mm:ss') from student;SQL> savepoint update1;Savepoint createdSQL> update student set name='张三' where stuno = 1;1 row updatedSQL> savepoint update2;Savepoint createdSQL> update student set name='李四' where stuno = 2;1 row updatedSQL> rollback to update2;Rollback completeSQL> commit;Commit complete张三没有更新,李四更新SQL>SELECT orderno from order_masterUnion/union all/intersect/minusSelect orderno from order_detail;Intersect操作符只返回两个查询的公共行Minus操作符返回从第一个积善余庆结果中排除第二个查询中出现的行连接操作符:SQL>select ‘oracle’||’程序员’ from dual;结果返回:oracle程序员例在指定日期上增加月份。

Java开发Oracle的jdbc驱动三种主要分类

1、JDBC OCI:oci是oracle call interface的缩写,此驱动类似于传统的ODBC 驱动。

因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件,其实主要是用到orcale客户端里以dll方式提供的oci和服务器配置。

2、JDBC Thin:thin是for thin client的意思,这种驱动一般用在运行在WEB浏览器中的JAVA程序。

它不是通过OCI or Net8,而是通过Java sockets进行通信,是纯java 实现的驱动,因此不需要在使用JDBC Thin的客户端机器上安装orcale客户端软件,所以有很好的移植性,通常用在web开发中。

3、JDBC KPRB:这种驱动由直接存储在数据库中的JAVA程序使用,如Java Stored Procedures 、triggers、Database JSP's。

因为是在服务器内部使用,他使用默认或当前的会话连接来访数据库,不需要用户名密码等,也不需要数据库url。

在应用开发的时候,通常是用前面两种方式,下面是数据库url的写法:jdbc:oracle:thin:@server ip: servicejdbc:oracle:oci:@service看来oci的还更加简洁,ip可以省掉不写了,这是因为oci驱动通过客户端的native java methods来条用c library方式来访问数据库服务器,使用到了客户端的net manager里的数据库服务配置。

因为oci方式最终与数据库服务器通信交互是用的c library库,理论上性能优于thin方式,据说主要是体现在blob字段的存取上。

开发oracle经常用到的pl sql dev使用的估计是oci方式,需要安装客户端,但也可以不安装,但是要抽出其中的oci相关的dll即jar包、注册环境变量、配置侦听文件等,无需安装oracle客户端,用plsql连接远程oracle 详细步见附注。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Listener.ora、sqlnet.ora、tnsnames.ora三个配置文件区别 分类: Oracle 2014-10-30 10:57:36

Listener.ora、sqlnet.ora、tnsnames.ora三个配置文件区别

listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录 [oracle@testdb1 ~]$ cd /app/oracle/ora11g/network/admin

[oracle@testdb1 admin]$ ll total 16 -rw-r--r--. 1 oracle oinstall 162 Oct 22 14:35 listener.ora drwxr-xr-x. 2 oracle oinstall 4096 Jul 10 07:10 samples -rw-r--r--. 1 oracle oinstall 381 Dec 17 2012 shrept.lst -rw-r--r--. 1 oracle oinstall 367 Oct 22 14:33 tnsnames.ora [oracle@testdb1 admin]$

三个文件的作用和使用 ########################################## sqlnet.ora-----作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串, 例如我们客户端输入 sqlplus sys/oracle@orcl

假如我的sqlnet.ora是下面这个样子 SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)

那么,客户端就会首先在tnsnames.ora文件中找orcl的记录.如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去 解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例,当然我这里orcl并不是一个主机名 如果我是这个样子 NAMES.DIRECTORY_PATH= (TNSNAMES) 那么客户端就只会从tnsnames.ora查找orcl的记录 括号中还有其他选项,如LDAP等并不常用。

######################################### Tnsnames.ora------这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似 NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES是,才会尝试使用这个文件。

例子中有两个,ORCL 对应的本机,SALES对应的另外一个IP地址,里边还定义了使用主用服务器还是共享服务器模式进行连接, 一句一句说

#你所要连接的时候输入得TNSNAME [oracle@testdb1 admin]$ cat tnsnames.ora testdb1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.235)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = testdb1) #show parameter service_name; ) )

testdb2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.236)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = testdb2) #show parameter service_name; ) ) 客户端完了我们来看服务器端 listener.ora------listener监听器进程的配置文件 关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。 Listener.ora文件的例子 [oracle@testdb1 admin]$ cat listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.235)(PORT = 1521)) ) ) )

#监听器的名字,一台数据库可以有不止一个监听器 上面的例子是一个最简单的例子,但也是最普遍的。一个listener进程为一个instance(SID)提供服务。

多实例监听: [oracle@testdb3 admin]:testdb1> cat listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.235)(PORT = 1521)) ) )

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = testdb1) (ORACLE_HOME = /app/oracle/ora11g) (SID_NAME = testdb1) ) (SID_DESC = (GLOBAL_DBNAME = testdb3) (ORACLE_HOME = /app/oracle/ora11g) (SID_NAME = testdb3) ) )

[oracle@testdb3 admin]:testdb1> cat tnsnames.ora testdb1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.235)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = testdb1) ) )

testdb2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.236)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = testdb2) ) ) testdb3 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.235)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = testdb3) ) )

监听器的操作命令 $ORACLE_HOME/bin/lsnrctl start,其他诸如stop,status等。具体敲完一个lsnrctl后看帮助。 上面说到的三个文件都可以通过图形的配置工具来完成配置

$ORACLE_HOME/netca 向导形式的 $ORACLE_HOME/netmgr 本人比较习惯netmgr, profile 配置的是sqlnet.ora也就是名称解析的方式 service name 配置的是tnsnames.ora文件 listeners配置的是listener.ora文件,即监听器进程

具体的配置可以尝试一下然后来看一下配置文件。 这样一来总体结构就有了,是当你输入sqlplus sys/oracle@orcl的时候

1. 查询sqlnet.ora看看名称的解析方式,发现是TNSNAME 2. 则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和service_name 3. 如果listener进程没有问题的话,建立与listener进程的连接。 4. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。 5. 这时候网络连接已经建立,listener进程的历史使命也就完成了。

几种连接用到的命令形式 1.sqlplus / as sysdba 这是典型的操作系统认证,不需要listener进程 2.sqlplus sys/oracle 这种连接方式只能连接本机数据库,同样不需要listener进程 3.sqlplus sys/oracle@orcl 这种方式需要listener进程处于可用状态。最普遍的通过网络连接。

相关文档
最新文档