Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置
Oracle监听器密码设置方法(LISTENER)
![Oracle监听器密码设置方法(LISTENER)](https://img.taocdn.com/s3/m/947980eaaff8941ea76e58fafab069dc502247c3.png)
Oracle监听器密码设置⽅法(LISTENER)监听器也有安全?Sure!在缺省的情况下,任意⽤户不需要使⽤任何密码即通过lsnrctl ⼯具对Oracle Listener进⾏操作或关闭,从⽽造成任意新的会话都将⽆法建⽴连接。
在Oracle 9i 中Oracle监听器允许任何⼀个⼈利⽤lsnrctl从远程发起对监听器的管理。
也容易导致数据库受到损坏。
1. 未设定密码情形下停⽌监听[oracle@test ~]$ lsnrctl stop listener_demo92 -->停⽌监听,可以看出不需要任何密码即可停⽌LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 08:22:26Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))The command completed successfully2. 重新启动监听并设置密码[oracle@test ~]$ lsnrctlLSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 08:24:09Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.Welcome to LSNRCTL, type "help" for information.LSNRCTL> set current_listener listener_demo92 -->设置当前监听器Current Listener is listener_demo92LSNRCTL> start -->启动过程也不需要任何密码,启动的详细信息省略LSNRCTL> change_password -->使⽤change_password来设置密码Old password:New password:Reenter new password:Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))Password changed for listener_demo92The command completed successfullyLSNRCTL> save_config -->注意此处的save_config失败Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))TNS-01169: The listener has not recognized the passwordLSNRCTL> set password -->输⼊新设定的密码验证Password:The command completed successfullyLSNRCTL> save_config -->再次save_config成功Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))Saved listener_demo92 configuration parameters.Listener Parameter File /oracle/92/network/admin/listener.oraOld Parameter File /oracle/92/network/admin/listener.bakThe command completed successfully-->增加密码之后可以看到listener.ora⽂件中有⼀条新增的记录,即密码选项(注:尽管使⽤了密码管理⽅式,仍然可以⽆需密码启动监听)[oracle@test admin]$ more listener.ora#----ADDED BY TNSLSNR 26-JUN-2011 05:12:48---PASSWORDS_listener_demo92 =#--------------------------------------------3. 尝试未使⽤密码的情况下停⽌监听[oracle@test ~]$ lsnrctl stop listener_demo92LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 06:09:51Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))TNS-01169: The listener has not recognized the password -->收到错误信息,需要使⽤密码认证4. 使⽤密码来停⽌监听[oracle@test ~]$ lsnrctlLSNRCTL> set current_listener listener_demo92Current Listener is listener_demo92LSNRCTL> stopConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))TNS-01169: The listener has not recognized the passwordLSNRCTL> set passwordPassword:The command completed successfullyLSNRCTL> stopConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))The command completed successfullyLSNRCTL> statusConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))TNS-12541: TNS:no listenerTNS-12560: TNS:protocol adapter errorTNS-00511: No listenerLinux Error: 111: Connection refusedConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))TNS-12541: TNS:no listenerTNS-12560: TNS:protocol adapter errorTNS-00511: No listenerLinux Error: 2: No such file or directory5. save_config失败的问题-->在 Oracle 9i中,使⽤save_config命令将会失败LSNRCTL> save_configConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=<port>)))TNS-01169: The listener has not recognized the password-->应该先使⽤set password之后再save_config,则保存配置成功。
oracle监听器启动出错:本地计算机上的oracleoradb11g home1tnsl
![oracle监听器启动出错:本地计算机上的oracleoradb11g home1tnsl](https://img.taocdn.com/s3/m/ffbd582a67ec102de3bd8905.png)
Oracle监听器启动出错:本地计算机上的OracleOraDb11ghome1TNSL...分类:Oracle一、错误描述登陆PL/SQLDeveloper登陆本地数据库时先报没有监听程序,查看服务发现Oracle监听服务没有启动。
右击启动监听程序,报错:错误描述:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了。
一些服务自动停止,如果它们没有什么可做的,例如"性能日志和警报"服务。
二、原因分析你安装oracle的时候是连网的,那么listener.ora文件里的HOST=网络给你分配的IP地址,而在你断网的时候就会出现这样的情况。
三、解决办法方法一:监听器通过listener.ora或者NetManager修改监听器配置。
将原来本地字符串127.0.0.1或者localhost改为主机名。
首先查阅你的**product11.2.0dbhome_1NETWORKADMIN目录下的"tnsnames.ora"和"listener.ora"这两个文件,然后看看里面的"HOST"信息,看看是不是你当前的ip地址,如果不是尝试着把这个2个文件改成你的ip地址,或直接就改成127.0.0.1(或计算机名字):注意:此时的监听配置文件"listener.ora"里面的HOST=的内容(IP或者主机名)必须和,服务配置文件"tnsnames.ora"里面,你想要链接的服务的HOST=的内容完全一致。
意思就是说要么都是IP地址,要么都是主机名。
如果有多个服务(NetManager中配置的网络服务)那么查看"tnsnames.ora"文件中与监听HOST内容一致的PL/SQL才可正常登录进去,否则无监听程序。
如:上面这里是"listener.ora"里面的HOST,我的是主机名。
(完整)Listener.ora、sqlnet.ora、tnsnames.ora三个配置文件区别
![(完整)Listener.ora、sqlnet.ora、tnsnames.ora三个配置文件区别](https://img.taocdn.com/s3/m/ce5fb09548d7c1c709a1452b.png)
Listener。
ora、sqlnet。
ora、tnsnames.ora三个配置文件区别分类:Oracle2014-10—30 10:57:36Listener.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]$ lltotal 16—rw-r—-r-—。
1 oracle oinstall 162 Oct 22 14:35 listener。
oradrwxr—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的记录。
oracle监听配置文件详解
![oracle监听配置文件详解](https://img.taocdn.com/s3/m/24c87bd380eb6294dd886cdf.png)
1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = MODOSE)
(divSENTATION = http://admin)
)
)
EXTPROC_CONNECTION_DATA.LOCALDOMAIN =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
(SID_NAME = oid)
)
)
& 说明
1 listener.ora 文件中定义一个监听器 其缺省的名称为 LISTENER
这个监听器缺省以tcp/ip为协议地址且端口号为1521运行 在CAMS应用中
监听文件定义的监听器就使用这个缺省名字 并且使用缺省的协议 tcp/ip
即监听配置文件 在本小节说明 另两个文件分别在随后的两个小节说明
监听配置文件 listener.ora 的存放路径为 $ORACLE_HOME/network/admin
以下是一个示例
LISTENER = #监听器名称
器的服务 即为哪些数据库实例提供监听服务 以 cams 实例为例 其对应的
服务信息为
(SID_DESC =
(GLOBAL_DBNAME = cams) #数据库名
(ORACLE_HOME = /u01/app/oracle/product/8.1.7)
(SID_NAME = cams) #数据库实例名
(PORT = 2481))
Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置
![Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置](https://img.taocdn.com/s3/m/2502a4156edb6f1aff001f32.png)
Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置分类:Oracle 基础知识2009-11-24 10:12 8315人阅读评论(7) 收藏举报一、监听器(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 几个服务各代表什么作用
![Oracle 几个服务各代表什么作用](https://img.taocdn.com/s3/m/fb261bd1c1c708a1284a4443.png)
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监听配置文件](https://img.taocdn.com/s3/m/47535ed16037ee06eff9aef8941ea76e58fa4a22.png)
Oracle监听配置文件最近看到好多人说到tns或者数据库不能登录等问题,就索性总结了下面的文档。
首先来说Ora cle的网络结构,往复杂处说能加上加密、LDAP等等。
这里不做讨论,重点放在基本的网络结构也就是我们最常用的这种情况。
三个配置文件重点:三个文件的作用和使用。
listene r.ora、sqlnet.ora、tnsname s.ora,都是放在$ORACLE_HOME\network\admin 目录下。
sqlnet.ora作用类似于li nux或者其他unix的nsswit ch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串。
例如我们客户端输入sqlp lus sys/oracle@orcl假如我的sq14lnet.ora是下面这个样子:SQLNET.AUTHENT ICATIO N_SERV ICES= (NTS)NAMES.DIRECTO RY_PAT H= (TNSNAME S,HOSTNAM E)那么,客户端就会首先在tnsna mes.ora文件中找orcl的记录。
如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的i p地址然后去连接这个ip上GLOBA L_DBNA ME=orcl这个实例,当然我这里or cl并不是一个主机名如果我是这个样子:NAMES.DIRECTO RY_PAT H= (TNSNAME S)那么客户端就只会从tnsn ames.ora查找or cl的记录。
括号中还有其他选项,如LDAP等并不常用。
附注:没有SQLNET.AUTHENT ICATIO N_SERV ICES= (NTS)这条语句,用户登录时就不经过OS认证,而需要通过用户名/密码认证登录。
Oracle数据库监听配置与报错解决方法
![Oracle数据库监听配置与报错解决方法](https://img.taocdn.com/s3/m/ae675935dcccda38376baf1ffc4ffe473368fdcb.png)
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 12c连接PDB时listener和tnsnames.ora配置
![Oracle 12c连接PDB时listener和tnsnames.ora配置](https://img.taocdn.com/s3/m/caaeaf64561252d380eb6e50.png)
Oracle 12c连接PDB时,listener和tnsnames.ora配置1、配置监听首先要明确,所有的PDB都使用1个监听,配置多个实际上启动时也只有第1个有意义。
LISTENER =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora12c_A)(PORT = 1521)) )接下来使用SID_LIST_LISTENER来进行静态注册服务。
SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = ora12c) #该服务是我配置的cdb信息(SID_NAME = ora12c))(SID_DESC =(GLOBAL_DBNAME = pdborcl)#该服务是我配置的pdb信息(SID_NAME = ora12c)))ADR_BASE_LISTENER = /opt/oracle2、tnsnames.ora配置观察发现,在tnsnames中配置pdb跟CDB,即原来11g的配置完全一样。
这里SERVICE_NAME = pdborcl使用得是PDB的名字,可以在v$pdbs中查看。
ORA12C =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = ora12c_A)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = ora12c)))pdborcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = ora12c_A)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = pdborcl)))3、为了保险,检查下sqlnet.oraNAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)这一句是为了保证优先使用TNSNAMES解析。
RAC环境下正确配置LISTENER和TNS
![RAC环境下正确配置LISTENER和TNS](https://img.taocdn.com/s3/m/6278b41a650e52ea55189839.png)
Rac环境下正确配置LISTENER和TNSRAC环境下配置LISTENER,TNS必须考虑负载均衡,故障切换等因素。
这里用一个四节点的RAC 环境为例:node1:rac1node2:rac2node3:rac3node4:rac41、服务器端的配置listener.ora的配置:配置每个实例本地的监听器:node1:<listener.ora>LISTENER_RAC1 =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node1-priv)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = IPC)(KEY = extproc)))))node2:<listener.ora>LISTENER_RAC2 =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node2-priv)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = IPC)(KEY = extproc)))))node3:<listener.ora>LISTENER_RAC3 =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node3-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node3-priv)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = IPC)(KEY = extproc))))node4:<listener.ora>LISTENER_RAC4 =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node4-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node4-priv)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = IPC)(KEY = extproc)))))tnsnames.ora的配置:在每个实例的tnsnames.ora文件中加入以下信息:LISTENER_RAC =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node3-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node4-vip)(PORT = 1421)(IP = FIRST)))LISTENER_RAC1 =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1421)(IP = FIRST)))LISTENER_RAC2 =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip)(PORT = 1421)(IP = FIRST)))LISTENER_RAC3 =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node3-vip)(PORT = 1421)(IP = FIRST)))LISTENER_RAC4 =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node4-vip)(PORT = 1421)(IP = FIRST)))设置LOCAL_LISTENER和REMOTE_LISTENER参数前面我们讲过,设置LOCAL_LISTENER参数是由于LISTENER使用了非TCP协议或非1521端口的情况下,那么在RAC环境下不管是使用了默认的TCP和1521还是其他协议都建议配置LOCAL_LISTENER.REMOTE_LISTENER参数在RAC环境下非常重要,是服务器使用load_balance的一个工具,在服务器端的连接中,Oracle NET通过remote_listener确定当前RAC中的远程监听和实例,以便分发连执行下面的语句设置LOCAL_LISTENER和REMOTE_LISTENER参数:ALTER SYSTEM SET LOCAL_LISTENER='LISTENER_RAC1' SCOPE=BOTH SID='RAC1';ALTER SYSTEM SET LOCAL_LISTENER='LISTENER_RAC2' SCOPE=BOTH SID='RAC2';ALTER SYSTEM SET LOCAL_LISTENER='LISTENER_RAC3' SCOPE=BOTH SID='RAC3';ALTER SYSTEM SET LOCAL_LISTENER='LISTENER_RAC4' SCOPE=BOTH SID='RAC4'; ...................ALTER SYSTEM SET REMOTE_LISTENER='LISTENER_RAC' SCOPE=BOTH SID='RAC1';ALTER SYSTEM SET REMOTE_LISTENER='LISTENER_RAC' SCOPE=BOTH SID='RAC2';ALTER SYSTEM SET REMOTE_LISTENER='LISTENER_RAC' SCOPE=BOTH SID='RAC3';ALTER SYSTEM SET REMOTE_LISTENER='LISTENER_RAC' SCOPE=BOTH SID='RAC4';2、客户端TNS的配置RAC环境下Client端TNS的配置和非RAC环境下,多IP的配置情况一样,都要配置load_balance 和TAF:rac =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = IP1)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = IP2)(PORT = 1521))(LOAD_BALANCE = YES)(CONNECT_DATA =(SERVER = DEDICA TED)(SERVICE_NAME = ?) //注意:这里指的不是数据库SID))或rac =(DESCRIPTION =(ADDRESS_LIST =(LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node3-vip)(PORT = 1421)(IP = FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST = node4-vip)(PORT = 1421)(IP = FIRST)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = RAC)(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)))连接测试开启多个连接测试, 并查询gv$session视图看看是否连接达到负载均衡.3、客户端HOSTS配置Hosts文件添加4、连接串解释ADDRESS后面就是连接的IP和端口号;LOAD_BALANCE=YES表示是否负载均衡;SERVER = DEDICA TIED表示专用服务器模式,感觉可以去掉;SERVICE_NAME=ORCL要操作数据库的服务名;TYPE = SELECT表示当一个连接好的会话的实例发生故障,系统会自动将会话切换到其他可用的实例,前台应用无须再度发起连接,但会话在执行的SQL 需要重新执行;METHOD = BASIC表示初始连接就连接一个接点,他还有个选项是PRECONNECT,表示初始连接所有的接点;RETRIES重试次数;DELAY 重试时延迟(以秒为单位)。
oracle11g监听配置
![oracle11g监听配置](https://img.taocdn.com/s3/m/d0f6b4f1f705cc1755270930.png)
监听配置相关问题客户终端(Client)无法连接服务器端(Server)本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路。
一、监听器(LISTENER)监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。
既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。
二、本地服务名(Tnsname)Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。
Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。
三、Oracle网络连接配置方法首先,要确保Oracle相关的服务已经开启,如下图所示:配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成。
点击“开始/程序/Oracle – OraHome11g_home1/配置和移植工具/Net Manager”启动Oracle网络管理器工具,启动Net Manager图形窗口如下图示:图(一)1、Oracle监听器配置(LISTENER)选中监听程序,点击左上侧“+”按钮添加监听程序,默认新加的监听器名称是LISTENER(该名称也可以由任意合法字符命名)。
点击确定,选中窗口右侧栏下拉选项中的“监听位置”,点击添加地址按钮。
在出现的网络地址栏的协议下拉选项中选中“TCP/IP”,主机文本框中输入主机名称(localhost),端口文本框中输入数字端口,默认是1521。
配置好的监听位置如下图示:图(二)选中窗口右侧栏下拉选项中的“数据库服务”,点击添加数据库按钮。
Oracle 监听器 Listener资料
![Oracle 监听器 Listener资料](https://img.taocdn.com/s3/m/72c96c150b4e767f5acfce8d.png)
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 版本中,提供动态注册和静态注册两种方式。
tns 参数
![tns 参数](https://img.taocdn.com/s3/m/f1208b76b80d6c85ec3a87c24028915f804d8428.png)
tns 参数
TNS参数是Oracle数据库网络服务的一部分,用于描述如何连接到远程数据库。
TNS参数主要包括以下部分:
1. PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。
2. HOST:数据库侦听所在的机器的机器名或IP地址,数据库侦听一般与数据库在同一个机器上,所以当我说数据库侦听所在的机器一般也是指数据库所在的机器。
在UNIX或WINDOWS下,可以通过在数据库侦听所在的机器的命令提示符下使用hostname命令得到机器名,或通过ipconfig(for WINDOWS) or ifconfig(for UNIX)命令得到IP地址。
需要注意的是,不管用机器名或IP地址,在客户端一定要用ping命令ping通数据库侦听所在的机器的机器名,否则需要在 hosts文件中加入数据库侦听所在的机器的机器名的解析。
3. PORT:数据库侦听正在侦听的端口,可以察看服务器端的文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。
此处Port的值一定要与数据库侦听正在侦听的端口一样。
4. SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令察看。
另外还有一些可选参数,例如FAILOVER、LOAD_BALance、
RECV_BUF_SIZE、SDU、SEND_BUF_SIZE、SOURCE_ROUTE和
TYPE_OF_SERVICE等。
以上内容仅供参考,建议咨询Oracle数据库专家或查阅Oracle官方文档获取更准确的信息。
oracle中 tns配置流程
![oracle中 tns配置流程](https://img.taocdn.com/s3/m/8bcaba607275a417866fb84ae45c3b3566ecdd18.png)
oracle中 tns配置流程英文回答:TNS (Transparent Network Substrate) configuration in Oracle involves setting up the network connectivity between the client and the Oracle database server. It allows the client to connect to the database by specifying a TNS alias instead of the actual network address of the server.The TNS configuration process typically involves the following steps:1. Install Oracle Client: Before configuring TNS, you need to ensure that the Oracle client software is installed on the client machine. This software provides the necessary tools and utilities to establish the connection.2. Locate the TNSNAMES.ORA file: The TNSNAMES.ORA file is a configuration file that contains the network service names and their corresponding network addresses. It istypically located in the ORACLE_HOME/network/admin directory.3. Edit the TNSNAMES.ORA file: Open the TNSNAMES.ORA file in a text editor and add a new entry or modify an existing entry to define the TNS alias for the database you want to connect to. The entry should include the following information:TNS alias: A unique name that identifies the database.Network address: The hostname or IP address of the database server.Port number: The port on which the database is listening.Service name: The name of the database service.4. Test the TNS configuration: After making the necessary changes to the TNSNAMES.ORA file, you can testthe TNS configuration by using the tnsping utility. Open a command prompt and run the following command: tnsping <TNS alias>. If the TNS configuration is correct, you should see a successful response indicating that the database is reachable.5. Connect to the database: Once the TNS configuration is validated, you can use the TNS alias to connect to the database from your application or command line. Simply specify the TNS alias as the connection identifier in the connection string.中文回答:在Oracle中,TNS(Transparent Network Substrate)配置涉及设置客户端与Oracle数据库服务器之间的网络连接。
oracle数据库tns配置方法详解
![oracle数据库tns配置方法详解](https://img.taocdn.com/s3/m/72874a1d6d85ec3a87c24028915f804d2b168796.png)
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之listener.ora配置详解
![Oracle之listener.ora配置详解](https://img.taocdn.com/s3/m/4d1b75e418e8b8f67c1cfad6195f312b3169ebfc.png)
Oracle之listener.ora配置详解listener.ora⽂件主要是为了配置listener.ora静态监听。
# listener.ora Network Configuration File: D:\soft\oracle\base\product\11.2.0\dbhome_1\network\admin\listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = ORCL)(ORACLE_HOME = D:\soft_install_route\oracle_install\product\11.2.0\dbhome_1))(SID_DESC =(SID_NAME = HSUN)(ORACLE_HOME = D:\soft_install_route\oracle_install\product\11.2.0\dbhome_1)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))))ADR_BASE_LISTENER = D:\soft_install_route\oracle_install 详解各个属性:第⼀:LISTENER部分包含协议地址列表,每个实例⼀个⼊⼝,监听名称,可以配置多个监听,多个监听的端⼝号要区分开来第⼆:SID_LIST_LISTENER部分标识全局数据库名称、标识监听程序正在服务的每个实例的Oracle软件主⽬录以及实例或SID。
第三:SID_LIST描述⽤于静态数据库注册、保持和以前的版本兼容性以及供Oracle Enterprise Manager使⽤,因为我本地有三个数据库,如图:所以需要配置SID_LIST是⼀个数组如:SID_LIST =(SID_DESC =(SID_NAME = ORCL)(ORACLE_HOME = D:\soft_install_route\oracle_install\product\11.2.0\dbhome_1))(SID_DESC =(SID_NAME = HSUN)(ORACLE_HOME = D:\soft_install_route\oracle_install\product\11.2.0\dbhome_1)) 第四:SID_NAME :服务器端(本机)的SID。
oracle监听配置方法
![oracle监听配置方法](https://img.taocdn.com/s3/m/bb078155a8956bec0875e313.png)
1.ORACLE监听服务配置步骤第一步,在系统开始菜单下找到oracle安装目录,找到监听配置工具第二步:弹出界面,选择监听程序配置项,然后点击下一步,第三步:弹出界面选择重新配置,然后点击下一步,第四步:弹出监听配置界面,如下图所示:选择默认的监听,然后点击下一步,第五步,弹出是否要修改监听界面,选择是,点击下一步,第六步,弹出监听配置界面,选择TCP协议,如下图所示,点击下一步,第七步,弹出端口设置界面,选择默认的1521端口号,点击下一步,如下图所示:第八步,弹出是否配置另一个监听程序设置界面,选择否,点击下一步,如下图所示:第九步,弹出界面提示监听配置完成,如下图所示,继续点击下一步,第十步,弹出配置完成界面,点击完成,即可完成监听配置(如果没配置成功,继续从此界面开始上述各步骤配置监听),如下图所示:第十步,启动监听服务,点击右键我的电脑,选择管理,如下图所示第十一步,弹出计算机管理界面,选择服务table页面,在电脑右边可以看到相应的服务,如下图所示:第十二步,找到oracle的监听服务名OracleOraDb11g_home1TNSListener,选择启动或者重启动操作,监听服务即可重启。
2. 验证Oracle监听服务是否启动成功步骤(配置网络服务连接信息)第一步,在系统开始程序中选择oracle安装程序目录的服务服务配置工具,如下图所示:第二步,弹出配置界面,选择第三项,如下图所示,点击下一步,第三步,弹出如下界面,选择添加,点击下一步,第四步,弹出如下界面,在服务名栏中填入对应的服务名,一般是orcl,点击下一步,第五步,弹出如下界面,选择对应的TCP协议,点击下一步,第六步,弹出如下界面,选择刚才监听配置的端口号,一般监听配置默认端口号1521,我们选择默认的端口号(注意这个一定要选择与监听配置的一样),接着在主机名栏内填入机器的设置IP,或者填127.0.0.1,填完之后,点击下一步。
Oracle11监听程序问题解决
![Oracle11监听程序问题解决](https://img.taocdn.com/s3/m/5b8cace3f8c75fbfc77db29b.png)
Oracle11监听程序问题
在windows环境下安装oracle11有时候会遇到监听程序相关错误大致分为以下几种类型:
1.无监听程序
2.监听程序当前无法识别连接描述符中请求的服务
3.无法启动监听程序
首先,新建一个本地网络服务名配置来测试这些可能存在的问题。
完成后,对其进行测试。
1.无监听程序ORA-12541
首先确定监听程序是否启动,如果未启动,尝试启动它。
启动后可能会遇到下面两个问题中的一个:
2.监听程序当前无法识别连接描述符中请求的服务ORA-12541
listener.ora和tnsnames.ora这两个文件的内容不一致造成的。
以前在oracle10的时候经常会遇到这个问题。
但是在11以后,手工改这个文件容易改错。
所以,我建议使用Net config Assistant工具来改。
注意:每次修改过这两个文件必须重启oaracle服务和监听服务,并且重启Net config Assistant进行重新测试。
3.无法启动监听程序
listener.ora文件的内容可能被手工修改错了,按照下面步骤来修复:
1)删除现有的所有监听程序。
2)删除listener.ora和tnsnames.ora这两个文件。
3)新建监听服务
4.用户名口令无效ORA-101017
看到这个基本就成功了。
修改一下登陆就行了。
Oracle11g数据库监听配置
![Oracle11g数据库监听配置](https://img.taocdn.com/s3/m/bf8f27badd3383c4ba4cd207.png)
Oracle11g数据库监听配置(2012-07-02 13:30:08)转载▼分类:sql标签:杂谈经验告诉我:最好把数据库的SID和数据库全局名称分开,免得配置时混了,如果要配置服务器端和客户端时,服务器端和客户端都需要配置,并且配置方法一样一、监听器(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 监听详解
![oracle 监听详解](https://img.taocdn.com/s3/m/fc5d396aa98271fe910ef95f.png)
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)。
Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置分类:Oracle 基础知识2009-11-24 10:12 8315人阅读评论(7) 收藏举报一、监听器(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(该名称也可以由任意合法字符命名)。
选中该名称,选中窗口右侧栏下拉选项中的“监听位置”,点击添加地址按钮。
在出现的网络地址栏的协议下拉选项中选中“TCP/IP”,主机文本框中输入主机名称或IP地址(如果主机即用作服务端也作为客户端,输入两项之一均有效;如果主机作为服务端并需要通过网络连接,建议输入IP地址),端口文本框中输入数字端口,默认是1521,也可以自定义任意有效数字端口。
配置好的监听位置如下图示:图(二)选中窗口右侧栏下拉选项中的“数据库服务”,点击添加数据库按钮。
在出现的数据库栏中输入全局数据库名,如myoracle。
注意这里的全局数据库名与数据库SID有所区别,全局数据库名实际通过域名来控制在同一网段内数据库全局命名的唯一性,就如Windows下的域名控制器,如这里可以输入myoracle.192.168.1.5。
Oracle主目录可以不填写,输入SID,如myoracle。
完整的数据库服务配置如下图示:图(三)保存以上配置,默认即可在Oracle安装目录下找到监听配置文件(Windows下如D:oracleora92networkadminlistener.ora,Linux/Unix下$ ORACLE_HOME/network/admin/listerer.ora)。
至此,Oracle服务端监听器配置已经完成。
2、本地服务名配置(Tnsnames)本地服务名是基于Oracle客户端的网络配置,所以,如果客户端需要连接数据库服务器进行操作,则需要配置该客户端,其依附对象可以是任意一台欲连接数据库服务器进行操作的pc机,也可以是数据库服务器自身。
如前面所介绍,可以利用Oracle自带的图形化管理工具Net Manager来完成Oracle客户端的配置。
选中如图(一)中的服务命名,再点击左上侧“+”按钮,弹出如下图示对话框:图(四)输入Net服务名,如myoracle,点击下一步,进入下图示对话框:图(五)选中TCP/IP(Internet协议),点击下一步,如下图示:图(六)输入主机名与端口号。
注意这里的主机名与端口号必须与数据库服务器端监听器配置的主机名和端口号相同。
点击下一步,如下图示:图(七)选中(Oracle8i或更高版本)服务名,输入服务名。
这里的服务名实际上就是数据库服务器端监听器配置中的全局数据库名,前者与后者必须相同。
连接类型通常选专用服务器,这要视数据库服务器的配置而定,如果配置的共享数据库服务器,这里的连接类型就要选共享服务器,否则建议选专用服务器(关于专用服务器的介绍请参阅相关文档)。
配置好后点击下一步,如下图示:图(八)如果数据库服务器端相关服务启动了,可以点击测试按钮进行连接测试。
Oracle默认是通过scott/tiger用户进行测试连接,由于scott用户是Oracle自带的示例用户,对于正式的业务数据库或专业测试数据库可能没有配置这个用户,所以需要更改成有效的用户登录才可能测试成功。
如果这里测试连接不成功,也不要紧,先点完成按钮结束配置。
回到Oracle网络管理器(Oracle Net Manager)主窗口,保存配置,默认即可在Oracle安装目录下找到本地服务名配置文件(Windows下如D:oracleora92networkadmintnsnames.ora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnames.ora)。
配置完成的本地服务名如下图示:图(九)树形目录下的服务命名可以通过编辑菜单里的重命名菜单更改成任意合法字符组成的服务名称,注意服务名称前不能有空格字符,否则可能无法连接数据库服务器。
3、连接数据库服务器(1) 启动服务器端监听器与数据库服务Linux/Unix下,启动监听器:$ lsnrctl start关闭监听器:$ lsnrctl stop查看监听状态:$ lsnrctl status启动数据库:$ sqlplus /nologn sys@myoracle as sysdba --这里的myoracle是前面配置的客户端本地服务名或SQL>conn / as sysdbaSQL>startupWindows下,启动监听器:C:lsnrctl start启动Oracle实例服务:C:oradim ?a href="/pcgame" class="none" title="cs"rel="external">cstartup –sid myoracle关闭Oracle实例服务:C:oradim –shutdown –sid myoracle以上服务必须同时启动,客户端才能连接数据库。
由于默认配置的监听器名称是Listener,上述命令可以正常启动监听器,如果监听器名称是其它名称,如aListener,则需要用下列方式才能启动:Linux/Unix下:$ lsnrctl start aListenerWindows下:C:lsnrctl start aListener(2) 测试连接数据库服务器测试的方法多种多样,可以在上面配置本地服务名时进行测试,也可以是第三方客户端工具,如PL/SQL Developer,最方便的是用Oracle自带的sqlplus工具,以下利用sqlplus进行测试:C:sqlplus /nologSQL>conn zgh@myoracle已连接。
四、客户端连接服务器端常见问题排除方法要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。
下面列出几种常见的连接问题:1、 ORA-12541: TNS: 没有监听器显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。
启动监听器:$ lsnrctl start或C:lsnrctl start2、 ORA-12500: TNS: 监听程序无法启动专用服务器进程对于Windows而言,没有启动Oracle实例服务。
启动实例服务:C:oradim –startup -sid myoracle3、 ORA-12535: TNS: 操作超时出现这个问题的原因很多,但主要跟网络有关。
解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。
4、 ORA-12154: TNS: 无法处理服务名检查输入的服务名与配置的服务名是否一致。
另外注意生成的本地服务名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)里每项服务的首行服务名称前不能有空格。
5、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。
该服务名必须与服务器端监听器配置的全局数据库名一致。
6、 Windows下启动监听服务提示找不到路径用命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。
打开注册表,进入HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/OracleOraHome92TNSListener项,查看ImagePath字符串项是否存在,如果没有,设定值为D:oracleora92BINTNSLSNR,不同的安装路径设定值做相应的更改。
这种方法同样适用于Oracle实例服务,同上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Oracle ServiceMYORACLE项,查看ImagePath字符串项是否存在,如果没有,则新建,设定值为d:oracleora92 binORACLE.EXE MYORACLE。
以上是Oracle客户端连接服务器端常见的一些问题,当然不能囊括所有的连接异常。
解决问题的关键在于方法与思路,而不是每种问题都有固定的答案。