首先,我们必须知道在oracle11g中,官方推荐GI和oracle数据库软件分开管理,在这种情况下,我们会发现数据库监听器其实是位于GI的管理账号下,即通常我们所创建的grid账号。在该grid账号的$ORACLE_HOME/network/admin目录下我们会发现我们的listener.ORA文件。同时监听器的启动与关闭都是由该grid账号来控制,若使用oracle账号此时就会发现报错如下:

TNS-01190: The user is not authorized to execute the requested listener command

当然我们仍然可以透过oracle账号用netca命令创建监听器,此时的监听器位于oracle账号的$ORACLE_HOME/network/admin目录下。

此外,默认情况下我们的tnsnames.ora文件仍然存在于oracle账号下的相关位置。

下面我们就监听器的具体配置分析下:

首先我们必须清楚地明白在RAC环境下都有哪些实例,各个实例是否都需要监听呢,针对该问题我们测试一把:

[grid@RAC01 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 03-JAN-2014 08:33:35

…………………………

Copyright (c) 1991, 2009, Oracle.All rights reserved.

………………

Listener Parameter File/u/app/11.2.0/grid/network/admin/listener.ora

Listener Log File/u/app/grid/diag/tnslsnr/RAC01/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.134.30.27)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.134.30.47)(PORT=1521)))

Services Summary...

Service "+ASM" has 1 instance(s).

Instance "+ASM2", status READY, has 1 handler(s) for this service...

The command completed successfully

观察我们的监听器状态,此时可以发现只有ASM实例的监听服务,但是数据库实例的监听去哪儿呢?关于该问题我的推荐关注两个参数:local_listener、remote_listener。我们再次只需要参数local_listener就ok了。

其实上面所说的no listener、no services都是与该参数有关的。我们看看现在服务器上该参数的配置:

首先观察的是ASM实例:

SQL> show parameter local_l

NAMETYPE

------------------------------------ ---------------------------------

VALUE

------------------------------

local_listenerstring

(DESCRIPTION=(ADDRESS_LIST=(AD

DRESS=(PROTOCOL=TCP)(HOST=RAC0

1-vip)(PORT=1521))))

SQL> select instance_name,status from v$instance;

INSTANCE_N STATUS

---------- ------------------------------------

+ASM2STARTED

可以看到asm实例的local_listener参数实际上使用的是vip。

再看看我们的数据库实例:

SQL> show parameter local_li

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

local_listenerstring(DESCRIPTION=(ADDRESS_LIST=(AD

DRESS=(PROTOCOL=TCP)(HOST=RACS

CAN.localdomain.)(PORT=1521)))

)

SQL> select instance_name,status from v$instance;

INSTANCE_N STATUS

---------- ------------

RACDB2OPEN

我们观察到数据库实例使用的是scan-ip。

那是不是就是应为使用的ip情况的不同,listener监听器中的监听服务不同呢?

我们来测试一把:

此处我们只测试asm实例的参数local_listener即可,其他服务的雷同。

SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=RACSCAN.localdomain.)(PORT=1521))))';

System altered.

SQL> host lsnrctl status

Listener Parameter File/u/app/11.2.0/grid/network/admin/listener.ora

Listener Log File/u/app/grid/diag/tnslsnr/RAC01/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.134.30.27)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.134.30.47)(PORT=1521)))

The listener supports no services

The command completed successfully

我们观察到监听还是那个监听,但是服务却不是那个服务了,此时no services了。

此时我们在透过tnsnames.ora文件的配置从客户端登陆数据库时就会出现如下错误:

ORA-12520: TNS:listener could not find available handler for requested type of

server

Enter user-name:

无论是vip还是透过scan-ip都是不行的。从此处我们可以得出结论:ASM实例的监听地址必须是VIP而不能是scan-ip。否侧会出现上述报错。

将ASM实例的监听器修改回来。

alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=RAC01-vip)(PORT=1521))))';

那么数据库实例应该使用那个类型的ip呢,是scan-ip还是vip呢,其实这两个ip都行,就看你怎么用了。如果local_listener参数配置为指向vip,此时客户端只能透过vip访问数据库,如果local_listener参数配置为scan-ip此时客户端必须透过scan-ip访问,否则登陆同样报错如下:

ORA-12520: TNS:listener could not find available handler for requested type of

server

Enter user-name:

总结:

在oracle11g RAC环境中,监听器是由grid账号来维护的,此外ASM实例使用的一定是vip,数据库实例vip、scan-ip均可使用。如果数据库参数local_listener配置了vip,此时客户端只能透过vip访问数据库,如果数据库参数local_listener参数设置为scan-ip此时客户端只能透过scan-ip访问数据库。建议使用scan-ip,这样数据库在增删节点的时候就不会影响到客户端的使用,客户端也无需也节点的变化而修改配置。Oracle官方建议在使用scan-ip时最少配置3个scan-ip。这样透过冗余可防止某个scan-ip不可用导致客户端无法访问数据库。

以上测试仅为个人测试分析,若有不对请各位及时指出,鄙人自当万分感谢。

Oracle11g rac监听,关于oracle11g RAC 监听器使用中出现的no services以及no listener分析...相关推荐

  1. oracle起监听命令,lsnrctl oracle 监听器 命令行 操作命令 lsnrctl services

    评论 # re: lsnrctl oracle 监听器 命令行 操作命令 lsnrctl services 2009-06-29 22:15 gddg 邪门的 错误 用360 kill 占用 1521 ...

  2. Oracle11g rac监听,Oracle11gRAC监听程序offline

    Oracle 11g RAC 监听程序在调整过网络后出现监听进程offline,而且两台节点之间频繁切换,查看日志/var/log/message 发现有频繁的 Oracle 11g RAC 监听程序 ...

  3. oracle rac 通信端口,修改oracle 10g rac监听端口号为1523的步骤

    修改oracle  10g rac监听端口号为1523的步骤 一. 修改listener.ora ,将其中的1521改为1523.事先做该文件的备份,以便快速复原 二. 修改tnsnames.ora ...

  4. oracle11g监听程序启动,Oracle11g无监听程序解决办法

    Oracle11g无监听程序解决办法 一.监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求.既然是基于服务器端的服务,那么它 ...

  5. Comnnect oracle,RAC监听日志与CRS日志

    RAC监听日志:tnsname.ora CRS日志: 位置:Oracle集群涉及的日志主要位于"$ORA_CRS_HOME/log"和"$ORACLE_HOME/log& ...

  6. oracle集群监听启动,在RAC中lsnrctl和srvctl操作监听区别

    朋友今天询问了一个问题RAC中使用srvctl 操作监听和lsnrctl 操作监听结果不一样,下面我通过实验说明问题 0.listener.ora文件内容 LISTENER_RAC1 = (DESCR ...

  7. oracle 怎么看监听文件,【学习笔记】Oracle11G关于监听文件位置与监听文件大小限制...

    [学习笔记]Oracle11G关于监听文件位置与监听文件大小限制 时间:2016-11-07 21:21   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Oracle研究中 ...

  8. oracle 双结点监听文件,RAC监听服务两个节点 只能起一个

    我的问题是, RAC系统有两个节点, endpoints_listener和istener 配置如下: node1: LISTENER_DB1=(DESCRIPTION=(ADDRESS_LIST=( ...

  9. 关于10g RAC监听设置,tnsnames.ora设置,VIP及客户端配置问题

    按照文档安装完成,但是lsnrctl status 没有发现节点2 gnd-rac01</etc>$lsnrctl status LSNRCTL for Linux: Version 10 ...

最新文章

  1. 嵌入式为什么不受欢迎?谈谈我对嵌入式的理解!
  2. linux笔记 1-13-软件安装
  3. CentOS 6.4 Heartbeat+mysql+nfs实现高可用的mysql集群
  4. 如何将本地项目上传至GitHub
  5. ubuntu 10.10 修改下载源的方法
  6. Java提高篇 —— Java三大特性之多态
  7. MySql笔记:Can't create table 'mydb3.#sql-f48_1' (errno: 150
  8. dbf文件怎么创建_ThinkPHP6开发博客实战入门(三),创建admin后台入口
  9. tp auth 转载保存
  10. 一个关于指针+记录数据类型的使用技巧
  11. 鸿蒙如何连接电视,鸿蒙系统首秀,在自家设备上和普通电视大不相同
  12. Mysql 8.0 | #08004Client does not support authentication protocol requested by server
  13. visual studio C++冒号:与双冒号::的使用说明
  14. 【工欲善其事必先利其器】论文编辑及文献管理(Endnote,Latex,JabRef ,overleaf)资源下载及使用指南
  15. Mysql基础篇(8)—— 变量、流程控制和游标
  16. 分布式系统论文精读2:GFS
  17. 第九周.02.KAT
  18. Linux版本的 免费的人脸识别技术。
  19. golang iris web项目热重启
  20. 零氪科技撤回IPO申请:年亏近5亿 中概股上市已停滞9个月

热门文章

  1. Go的Ducktype
  2. 通信网络基础实验报告_建设亚太信息枢纽港、实现5G网络全覆盖!临港新片区通信基础设施规划发布...
  3. 锐捷升级最新版本出现虚拟网卡安装失败?
  4. 成熟的 Git 分支模型
  5. 如何使用 HTTP Headers 来保护你的 Web 应用
  6. Eclipse中Spring插件:Spring Tool 4(aka Spring Tool Suite 4)插件安装
  7. 对VOC目标检测数据进行增强
  8. c语言case的应用,switch、case的使用
  9. 页面布局_word页面布局
  10. python分位数回归模型_如何理解分位数回归风险价值 (VaR) 模型?