`
buliedian
  • 浏览: 1224040 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

PMON向监听注册实例的行为

阅读更多

PMON 向监听注册实例的行为: 在缺省情况下(也就是没有LOCAL_LISTENER参数配置的情况下),PMON会根据主机名 (hostname),查找其IP地址,通常是在/etc/hosts中找对应的条目,如果没有找到hostname的IP地址,则PMON不会注册,

同 时,必须是本机的IP地址,PMON才能注册。

比如在/etc/hosts中将hostname对应的IP地址改为其他非本机的IP地址,PMON也不会 进行注册。

PMON根据hostname找到IP后,同时判断这个是本机IP,则会通过这个IP连接至监听进行注册。

如果listener没有监听这个 IP,则PMON也不会注册,因为通过这个IP连接不上监听。

举一个简单的例子,现有两台IBM小机,作双机热备,双机采用HACMP。在监听设置中,只监听了HA的服务IP地址,而hostname对应的IP地址 为服务IP绑定的网卡上的另一个地址。

在这种情况下,PMON不能进行动态注册,在客户端连接这个ORACLE服务器时,将会报ORA-12514错误。 解决上面提到的这个问题的办法,

除了静态注册(本文主要讨论动态注册),

还有两种办法,第一种我个人认为最好的一种,是在LISTENER上监听两个IP 地址,类似于下面这样:

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xty_vip )(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.114 )(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) )

另一个办法就是设置LOCAL_LISTENER参数,假如LISTENER只监听了xty_vip(192.168.0.115)这个地址,

则通过下面 的命令设置LOCAL_LISTENER:

ALTER SYSTEM SET LOCAL_LISTENER=' (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.115 )(PORT = 1521))'

这里建议使用IP地址,特别是对RAC,后文细述。 LOCAL_LISTENER 使PMON改变用hostname连接LISTENER进行注册的默认行为。改而用LOCAL_LISTENER参数指定的地址连接LISTENER进行 注册。当然LOCAL_LISTENER指定的IP地址必须是本机的IP地址。如果是非本机IP,则会忽略此参数,但是会从前一个已注册的监听中取消注 册。 与LOCAL_LISTENER对应的参数有REMOTE_LISTENER参数。REMOTE_LISTENER使PMON在远程(即非本机)监听上进 行注册,这个参数在RAC中经常使用(用于负载均衡)。

***相关主题****************************************

***相关主题****************************************

local_listener参数的作用

sqlnet.ora导致的RAC的failover失败-后续

你的监听安全吗?

WARNING: Subscription node down event still pending

RAC上的监听LOCAL_LISTENER和REMOTE_LISTENER

分享到:
评论

相关推荐

    监听配置的概念动态注册静态注册及各种场景的配置实例

    动态注册仅向默认的1521端口的监听器注册,若需注册到非默认端口,需要在`local_listener`参数中指定监听器的地址。 静态注册则是指在`listener.ora`文件中直接声明实例和服务的信息。这种方式更适用于那些不会频繁...

    Oracle 单一主机多个实例多个监听器配置

    由于Oracle的进程监控器(PMON)只会动态注册端口等于1521的监听器,对于其他端口,PMON无法自动注册监听器。因此,为了使PMON动态注册其他端口的监听器,必须通过设置`local_listener`参数来指定本地监听器的地址和...

    Oracle数据库教程——oracle静态监听和动态监听借鉴.pdf

    在数据库启动时,它会自动向监听程序注册服务名和实例名。监听程序就像一个中间人,存储了数据库服务的信息,以便客户端能够找到并连接到正确的数据库。 二、静态注册 静态注册是通过修改`listener.ora`配置文件...

    smon与pmon的区别

    如果监听器运行在库实例开启的时候,PMON和监听器通讯,传到它相关参数,譬如服务器名和实例的负载度量。如果监听器没被开启,PMON将周期性的试着和它联系来登记自己。 SMON(System Monitor) SMON是系统监控进程...

    如何配置Oracle监听器

    监听器的主要职责是接收客户端连接请求,并将其分发到相应的数据库实例。如果监听器配置不当,则会出现诸如“Thelistenersupportsnoservices”等错误,这通常意味着监听器未能识别或绑定到任何有效的服务。本文将...

    oracle注册.docx

    静态注册通过 pfile 文件来注册数据库,而动态注册则是在实例启动的时候 PMON 进程根据 init.ora 中的参数将实例名和服务名动态注册到监听器中。理解这两种注册机制对 Oracle 数据库的管理和维护非常重要。

    Oracle实例死掉的情况下如何恢复

    可以通过`ps -ef | grep pmon`命令列出所有正在运行的实例及其进程ID。 - 示例输出:`oracle 848106 10 Jan 14 - 5:30 ora_pmon_armsdev` - 这里`ora_pmon_armsdev`表示名为`armsdev`的实例的进程。 2. **查看...

    Oracle静态注册与动态注册详解

    **动态注册**则是由实例启动时的后台进程PMON根据`init.ora`(或`spfile`)中的`instance_name`和`service_names`参数自动将实例和服务注册到监听器。`instance_name`参数指定注册到监听器的实例名,如果未设置,则...

    数据库设计与开发--ORACLE数据库实例管理.pptx

    创建Oracle实例通常通过启动相应的数据库服务或监听器来完成。监控实例则包括对SGA和PGA的大小、利用率、性能指标的跟踪,以及后台进程的状态检查,例如数据库写入器(DBWR)、日志写入器(LGWR)、系统监控(SMON)、进程...

    Oracle第7章数据库实例.pptx

    6. 其他进程,如归档进程(ARCH)、监听器(LREG)、作业调度器(DBMS_JOB)等,分别负责不同的任务。 了解Oracle实例、SGA和后台进程对于管理和优化Oracle数据库至关重要。理解这些概念可以帮助数据库管理员有效地...

    oracle TNS 浅析

    从Oracle 9i开始,引入了动态监听服务注册,这意味着数据库启动时,PMON进程会自动将数据库实例注册到监听器,这样在listener.ora文件中就不需要显式配置SID_LIST_LISTENER部分了。 总的来说,Oracle TNS是Oracle...

    Oracle_TNS浅析.doc

    这意味着当数据库启动时,PMON进程会自动将当前数据库实例注册到监听器的监听列表中,无需在`listener.ora`文件中显式配置实例信息。 - **启用动态监听的条件**: - 数据库必须设置`INSTANCE_NAME`和`SERVICE_NAME...

    ORACLE数据库有关参数的理解

    - `local_listener`:此参数允许PMON进程将实例信息注册到本地监听器。如果未设置,实例将在默认端口1521上注册。只有当实例使用非标准端口时,才需要明确配置。 - `remote_listener`:在RAC环境中,此参数用于在...

    ORA-12514错误解决办法

    在这些版本中,PMON(Process Monitor)后台进程负责自动将系统参数`SERVICE_NAMES`中定义的服务名称注册到监听器上。`SERVICE_NAMES`通常设置为`DB_NAME+DOMAIN_NAME`。这意味着,在正常情况下,监听器配置文件`...

    Oracle TNS简述

    这意味着在数据库启动时,PMON 进程可以自动将当前数据库实例注册到监听器的监听列表中。 - 使用动态监听服务需要满足以下条件: - 数据库必须设置 `INSTANCE_NAME` 和 `SERVICE_NAME` 参数。 - 监听器使用默认的...

    Oracle9个_name介绍

    - **用途**:`db_name`对于动态注册监听器至关重要,无论`service_name`的设置如何,进程监控器(`PMON`)都会使用`db_name`进行动态注册。 #### 二、instance_name:实例名称 - **定义**:`instance_name`参数表示...

    oracle_DB_NAME,INSATNCE_NAME,ORACLE_SID区别

    在动态注册监听时,PMON 都会使用 DB_NAME 动态注册监听的。 INSTANCE_NAME INSTANCE_NAME 是实例名,是数据库运行中的名称,默认和 DB_NAME 是一样的。INSTANCE_NAME 是数据库中的一个实例,一个数据库可以有多个...

Global site tag (gtag.js) - Google Analytics