Oracle listener
文档说明:
1)、对于oracle网络写的不是很全,有的地方可能有误,希望大家多多提出意见!
2)、本文档适合有一定oracle基础的人员阅读。
3)、此文档解决了oracle监听的基本配置、一些网络组件的基本概念、常见问题排错方法、怎么配置动态监听和静态监听以及非默认监听、安装多个实例时如何配置监听
4)、如果对监听很感兴趣请参考oracle 官方联机文档,已经打包。
Oracle® Database
Net Services Administrator's Guide
11g Release 2 (11.2)
E10836-06
Oracle® Database
监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。
Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
[oracle@resoft Desktop]$ netmgr
Linux RHEL6.0下启动Net Manager图形窗口如下图示:
服务器端监听(listener.ora)还是比较好配置的,大部分情况下在数据库安装完成时已经根据向导配置好了。
输入Net服务名,如myoracle,点击下一步,进入下图示对话框:
选中TCP/IP(Internet协议),点击下一步,如下图示:
输入主机名与端口号。注意这里的主机名与端口号必须与数据库服务器端监听器配置的主机名和端口号相同,主机名可以是IP也可以是主机名。点击下一步,如下图示:
树形目录下的服务命名可以通过编辑菜单里的重命名菜单更改成任意合法字符组成的服务名称,注意服务名称前不能有空格字符,否则可能无法连接数据库服务器。
SQL>conn sys@myoracle as sysdba --这里的myoracle是前面配置的客户端本地服务名
以上服务必须同时启动,客户端才能连接数据库。由于默认配置的监听器名称是Listener,上述命令可以正常启动监听器,如果监听器名称是其它名称,如aListener,则需要用下列方式才能启动:
测试的方法多种多样,可以在上面配置本地服务名时进行测试,也可以是第三方客户端工具,如PL/SQL Developer,最方便的是用Oracle自带的sqlplus工具,以下利用sqlplus进行测试:
[oracle@resoft Desktop]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on Tue Feb 19 17:06:32 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> conn scott/tiger@myoracle
--------------------------------------------------------------------------------
2.2 动态注册
动态注册是在instance启动的时候PMON进程根据init.ora(服务器参数文件)中instance_name,service_names两个参数将实例和服务动态注册到listener中。
首先要在init.ora中指定instance_name,service_names两个参数的值。在sqlplus下通过show parameter service_names和show parameter instance_name可以查看这两个参数的值。
注册到监听器中的实例值从init.ora文件中的instance_name参数取得。如果该参数没有设定值,那么它将取init.ora文件中的db_name的值。如果在RAC中配置,您必须将集群中每个实例的instance_name参数设置为一个唯一的值。
注册到监听器中的服务值从init.ora文件中的参数service_names取得。如果该参数没有设定值,数据库将拼接init.ora文件中的 db_name和db_domain的值来注册自己。如果选择提供service_names值,您可以使用完全限定的名称(比如 orcl.oracle.com)或缩写的名称(比如orcl)。如果选择缩写的名称并设置了db_domain参数,注册到监听器中的服务将是 service_name值和db_domain值的拼接。例如下面的设置将导致服务orcl.oracle.com被注册到监听器中:
db_domain=oracle.com
service_names=orcl ;
采取动态注册方法时,listener.ora中的内容如下:SID_LIST_LISTENER =
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(ADDRESS = (PROTOCOL = TCP)(HOST = resoft)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
将监听的信息添加到tnsnames.ora 文件中。 注意,是tnsnames.ora 文件, 因为pmon在动态注册监听时要从tnsnames.ora中读取相关信息。
在数据库打开时的任何时候,手工地在监听器中注册服务值。这个命令对于替换因监听器重启而丢失地服务值很有用,并且它所注册地值与在数据库启动时由动态注册所设置的值完全一样。
oracle监听器运行后,oracle实例在open时,会动态向监听程序注册其service_names和instance_name。
而service_names默认是:db_name.db_domain
2.3 静态注册
静态注册就是实例启动时读取listener.ora文件的配置,将实例和服务注册到监听程序。无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务。
静态注册时,listener.ora中的GLOBAL_DBNAME向外提供服务名,listener.ora中的SID_NAME提供注册的实例名。
采取静态注册方法时,listener.ora中的内容如下:SID_LIST_LISTENER =
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(ADDRESS = (PROTOCOL = TCP)(HOST = resoft)(PORT = 1521))
)
该文件表明数据库是单实例的,实例名为orcl,向外提供了1个服务:ORCL
oracle实例运行后,监听程序启动时,根据listener.ora的配置注册相应的服务。
其中global_dbname对应的是oracle对外的服务名,即初始化参数里的service_names
而sid_name对应的是oralce实例的名称,即初始化参数里的instance_name
[oracle@resoft admin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 19-FEB-2013 18:11:48
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=resoft)(PORT=1521)))
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 19-FEB-2013 22:48:26
Uptime 248 days 13 hr. 13 min. 56 sec
Security ON: Local OS Authentication
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/resoft/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=resoft)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Service "ORCL" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
上面配置的监听都是默认监听 监听名:listener 端口:1521 这是会自动注册的,但是实际生产中基本上都是非默认监听。
以下测试直接修改服务器端监听文件listener.ora或者tnsnames.ora
目前测试数据库上已经有实例ORCL现在创建一个新的实例UPRR,设置监听名字listener1端口1522
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(ADDRESS = (PROTOCOL = TCP)(HOST = resoft)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
[oracle@resoft admin]$ export ORACLE_SID=UPRR
[oracle@resoft admin]$ sqlplus / as sysdba
SQL> alter system set local_listener=listener1 scope=spfile;
SQL> alter system set LOCAL_LISTENER='(ADDRESS = (PROTOCOL = TCP)(HOST = resoft)(PORT = 1522))';
(ADDRESS = (PROTOCOL = TCP)(HOST = resoft)(PORT = 1522))
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(ADDRESS = (PROTOCOL = TCP)(HOST = resoft)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
[oracle@resoft admin]$ lsnrctl
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 19-FEB-2013 19:40:23
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> stop listener --先关闭之前已经启动的监听listener
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=resoft)(PORT=1521)))
The command completed successfully
Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.3.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/resoft/listener1/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=resoft)(PORT=1522)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=resoft)(PORT=1522)))
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 19-FEB-2013 19:41:04
Uptime 0 days 0 hr. 0 min. 1 sec
Security ON: Local OS Authentication
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/resoft/listener1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=resoft)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Service "UPRR" has 1 instance(s).
Instance "UPRR", status UNKNOWN, has 1 handler(s) for this service... –此时监听的状态是没有注册,重启下数据库实例UPRR即可
The command completed successfully
Total System Global Area 636100608 bytes
Database Buffers 444596224 bytes
------------------------------------ ----------- ------------------------------
local_listener string LISTENER1
[oracle@resoft admin]$ lsnrctl status listener1
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 19-FEB-2013 19:52:18
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=resoft)(PORT=1522)))
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 19-FEB-2013 19:41:04
Uptime 0 days 0 hr. 11 min. 14 sec
Security ON: Local OS Authentication
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/resoft/listener1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=resoft)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Service "UPRR" has 2 instance(s).
Instance "UPRR", status UNKNOWN, has 1 handler(s) for this service...
Instance "UPRR", status READY, has 1 handler(s) for this service...
Service "UPRRXDB" has 1 instance(s).
Instance "UPRR", status READY, has 1 handler(s) for this service...
The command completed successfully
至此,配置非默认监听结束。环境中在同一个数据库软件上安装两个实例:ORCL和UPRR。
ORCL使用监听listener 端口1521 UPRR 使用listener1 端口1522
刚才看到了在启动listener1的时候必须把listener关闭,其实可以让实例ORCL和UPRR使用一个监听listener但是ORCL使用1521端口,UPRR使用1522端口。
修改后的listener.ora文件如下:
SID_LIST_LISTENER =
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(ADDRESS = (PROTOCOL = TCP)(HOST = resoft)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = resoft)(PORT = 1522))
修改完listener.ora后,把内容贴到tnsnames.ora中
在我本机oracle client 的tnsnames.ora中添加如下内容:
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.200)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.200)(PORT = 1522))
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 2月 19 20:45:53 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
从 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options断开
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 2月 19 20:46:05 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Oracle的监听(Listener)在缺省情况下,会在文件中记录日志,记录数据库实例注册操作、客户端的连接等。
[oracle@dave ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Productionon 22-DEC-2012 21:36:43
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
Version TNSLSNR for Linux: Version11.2.0.3.0 - Production
Start Date 22-DEC-2012 21:31:53
Uptime 0 days 0 hr. 4 min. 50 sec
Security ON: Local OS Authentication
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/dave/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.4)(PORT=1521)))
Service "dave" has 2 instance(s).
Instance "dave", status UNKNOWN, has 1 handler(s) for thisservice...
Instance "dave", status READY, has 1 handler(s) for thisservice...
Service "daveXDB" has 1instance(s).
Instance "dave", status READY, has 1 handler(s) for thisservice...
The command completed successfully
这个是Oracle 11g里的listener的保存位置。在Oracle 11g中使用的是ADR,ADR是11G的新特性,欲详细了解百度之。
这里是个xml文件,不方便文件,我们可以去trace目录下,看文本格式的:
/u01/app/oracle/diag/tnslsnr/dave/listener/trace
[oracle@dave trace]$ tail -20 listener.log
22-DEC-2012 21:33:39 * service_update *dave * 0
22-DEC-2012 21:33:42 * service_update *dave * 0
22-DEC-2012 21:33:45 * service_update *dave * 0
22-DEC-2012 21:34:18 * service_update *dave * 0
22-DEC-2012 21:34:21 * service_update *dave * 0
22-DEC-2012 21:34:24 * service_update *dave * 0
22-DEC-2012 21:34:27 * service_update *dave * 0
22-DEC-2012 21:34:48 * service_update *dave * 0
22-DEC-2012 21:35:06 * service_update *dave * 0
22-DEC-2012 21:36:18 * service_update *dave * 0
WARNING: Subscription for node down eventstill pending
22-DEC-2012 21:37:34 * service_update *dave * 0
对于这种listener.log增长非常迅速的系统,可以关闭监听日志,不让监听写日志到文件。也可以写个job定期清理。
关于Oracle Listener 的说明,官网有更多详细描述。
http://docs.oracle.com/cd/E11882_01/network.112/e10835/lsnrctl.htm#NETRF118
在某些特定的场合可能会有这样的需求。控制这个功能的参数是LOG_STATUS。官网对这个参数的说明:To turn listenerlogging on or off.
lsnrctl SET LOG_STATUS {on | off}
LSNRCTL> SET LOG_STATUS {on | off}
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status"set to ON
The command completed successfully
之前遇到一个很奇怪的问题,就是log_status状态是on,但是listener就是不写日志,再次手工设置为on后,又正常写日志。
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status"set to OFF
The command completed successfully
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status"set to OFF
The command completed successfully
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status"set to ON
The command completed successfully
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status" setto ON
The command completed successfully
To save the current configuration state of the listener, includingtrace level, trace file, trace directory, and logging tothe listener.ora file. Any changes are stored in listener.ora,preserving formatting, comments, and case as much as possible. Beforemodification of the listener.ora file, a backup of the file,called listener.bak, is created.
我们在第一部分修改了log_status 的配置,如果没有保存,那么在重启监听之后,修改就会失效,所以这里要保存,才能永久的生效。
LSNRCTL> save_config
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
Saved LISTENER configuration parameters.
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Old Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.bak
The command completed successfully
注意:
这里使用的是默认的listner,如果不是默认的,就需要加上listener_name.如:
LSNRCTL> SAVE_CONFIG listener_name
保存之后,修改的内容就会写入listener.ora 文件。
这里是我的的测试环境,其中listener.ora 文件多了如下内容:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
#----ADDED BY TNSLSNR 22-DEC-201221:59:58---
LOGGING_LISTENER = ON
#--------------------------------------------
LSNRCTL>set current_listener listener_name
使用change_password设置listener口令。
Old password: --如果原来没有设置口令就直接回车,否则输入原来的口令
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
The command completed successfully
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
Saved LISTENER configuration parameters.
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Old Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.bak
The command completed successfully
[oracle@dave ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 -Production on 22-DEC-2012 22:54:55
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
Version TNSLSNR for Linux: Version11.2.0.3.0 - Production
Start Date 22-DEC-2012 21:57:46
Uptime 0 days 0 hr. 57 min. 9 sec
Security ON: Local OS Authentication
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/dave/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.4)(PORT=1521)))
Service "dave" has 2 instance(s).
Instance "dave", status UNKNOWN, has 1 handler(s) for thisservice...
Instance "dave", status READY, has 1 handler(s) for thisservice...
Service "daveXDB" has 1instance(s).
Instance "dave", status READY, has 1 handler(s) for thisservice...
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
Version TNSLSNR for Linux: Version11.2.0.3.0 - Production
Start Date 22-DEC-2012 22:56:19
Uptime 0 days 0 hr. 11 min. 2 sec
Security ON: Password or Local OSAuthentication
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/dave/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.4)(PORT=1521)))
Service "dave" has 2 instance(s).
Instance "dave", status UNKNOWN, has 1 handler(s) for thisservice...
Instance "dave", status READY, has 1 handler(s) for thisservice...
Service "daveXDB" has 1instance(s).
Instance "dave", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@dave ~]$ cat/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
#----ADDED BY TNSLSNR 22-DEC-201221:59:58---
#--------------------------------------------
#----ADDED BY TNSLSNR 22-DEC-201223:06:31---
PASSWORDS_LISTENER =1DF5C2FD0FE9CFA2
#--------------------------------------------
listener的密码策略是防止stop,所以在stop时需要确认密码,在start时不需要输入密码。
The command completed successfully
使用set password输入正确的密码后,就可以进行stop操作了。
限制IP例子:
通过在sqlnet.ora文件中增加下列记录来实现
tcp.invited_nodes = (hostname1, hostname2,ip1,ip2)
tcp.excluded_nodes = (10.103.11.17,hostname1,hostname2)
tcp.invited_nodes = (hostname1, hostname2,ip1,ip2)
tcp.excluded_nodes = (10.103.11.17,hostname1,hostname2)
Oracle® Database Net Services Administrator's Guide11g Release 2
7.1 ora-01031:insufficient privileges
sqlplus "/ as sysdba" 连不上,报ora-01031:insufficient privileges解决方法
注意多个数据库实例时候,set ORACLE_SID='',
2)、检查登陆windows的用户(administrator或安装oracle时候使用的用户)是不是在包含在ORA_DBA组中,域用户没有连上域服务器时就可能出现这种现象。
3)、 要保证 remote_login_passwordfile 参数 = EXCLUSIVE .
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
ORA-01994: GRANT failed: password file missing or disabled
D:/>orapwd file="D:/oracle/product/10g/db_1/database/PWDoratest.ora" password=gp
SQL> select * from v$pwfile_users;
------------------------------ ----- -----
ora-01031:insufficient privileges
口令文件的命名格式应为orapwsid,并且sid是区分大小写的。由于Target Database连接Auxiliary Database时需要验证口令,
如果违反了以上规则,将会提示ORA-01031: insufficient privileges。
我在用linux创建duplicate数据库的时候就是因为口令文件创建的路径和名称不对才遇到这个错误
7.2 ORA-12514:TNS监听程序当前无法识别连接描述副中请求的服务
1)、打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。
2)、如果使用动态监听,检查监听是否注册到oracle实例中。解决方法:监听启动的状态下,重启oracle实例。
显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件tnsnames.ora里每项服务的首行服务名称前不能有空格。
出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。
1)、修改C:\Windows\System32\drivers\etc\hosts文件使计算机名和Ip映射正确
2)、修改oralce解析文件tnsnames.ora中(ADDRESS = (PROTOCOL = TCP)(HOST = resoft)(PORT = 1521)) host=后面的主机名
Oracle listener相关推荐
- oracle实例没有连到监听上6,oracle LISTENER未监听到oracle实例问题解决
oracle LISTENER未监听到oracle实例问题解决 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = ...
- 清理注册表后导致Oracle listener起不来
清理注册表后导致Oracle listener起不来 a.现象 LSNRCTL> start 启动tnslsnr:请稍候... Failed to start service, error 3. ...
- 1521端口 mysql_Linux开放1521端口允许网络连接Oracle Listener
症状: 1. TCP/IP连接是通的.可以用ping 命令测试. 2. 服务器上Oracle Listener已经启动. lsnrctl status 查看listener状态 lsnrct ...
- oracle listener.log 路径,Oracle listener.log 清理
listener.log 确定日志文件的大小 unixdev$[/grid/app/diag/tnslsnr/unixdev/listener/trace]du -ks listener.log722 ...
- OSSIM下添加oracle listener.log
这种方法不仅可以用在oracle日志的收集上,对于其他软件的时间日志,访问日志,都可以收集,关键是要将日志都分好类,用正则表达式都能匹配到,这样数据才是完整的 oracle的listener.log的 ...
- Linux打开端口1521,Linux开放1521端口允许网络连接Oracle Listener
症状: 1. TCP/IP连接是通的.可以用ping 命令测试. 2. 服务器上Oracle Listener已经启动. lsnrctl status 查看listener状态 lsnrct ...
- Oracle Listener 动态注册 与 静态注册
一.什么是注册 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. 在 ...
- oracle listener启动问题
本地计算机上的OracleOraDb11g_TNSListener服务启动后停止.某些服务在未有其他服务或程序使用时将自动停止. 出现这个问题时,去看oracle安装主机上的listener.ora和 ...
- Oracle listener静态注册和动态注册(zt)
曾经遇到一个问题,oracle10g里通过netca命令得到的listener.ora默认就是动态监听,但是默认没有设置instance_name和service_names参数.我一般是先启动db, ...
最新文章
- Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)...
- hive处理日志,自定义inputformat
- 4个强大的Linux服务器监控工具[转]
- 襄阳社区招聘计算机考什么时候,襄阳招聘网格员什么时候报名?
- 《SpringCloud超级入门》Spring Boot项目搭建步骤(超详细)《六》
- centos6.8 安装php7
- 仿真软件有哪些测试,仿真怎么去仿?测试怎么去测?虽然是问答篇,干货也不少,不要错过了!...
- php微信实现线下收银扫码枪扫码支付微信支付
- 爬虫日记(23):用scrapy快速地爬取蜂鸟网图片
- 洛谷P3369 【模板】普通平衡树 红黑树实现
- Windows11 安装安卓子系统详细教程
- 机考[51 - 60]
- 20.Vaild-Parentheses
- TDA4开发板开发学习
- 手把手教你安装虚拟机16
- 微信小程序获取手机号登录流程
- net::ERR_FILE_NOT_FOUND报错
- LeetCode栈和队列练习
- 基于Wi-Fi的室内定位在美团总部的实践和应用
- 屑 催 逝 员 剧 情 java 版
热门文章
- 如何嫁给改变世界的男人:程序员理想女友大调查
- 运输层课后第61题解读
- JAVA开发面试常问问题总结1
- 机器学习-吴恩达-笔记-6-应用机器学习的建议
- Quartz + Oracle 分布式Job实现
- Java自动化测试框架-07 - TestNG之Factory篇 - (详细教程)
- 第一:Python操作MySQL数据库
- selenium之 chromedriver与chrome版本映射表(更新至v2.43)
- python terminal_在PyCharm的 Terminal(终端)切换Python版本的方法
- mysql 种子表_mysql之3种子查询