oracle动态注册和静态注册监听器

oracle动态注册和静态注册的区别:动态监听不需要在listener.ora文件中记录关于数据的任何信息,只需要将监听器的配置信息写入到该文件。例如:

LISTENER =
 (DESCRIPTION_LIST =
   (DESCRIPTION =
    (ADDRESS=(PROTOCOL = IPC) (KEY=EXTPRO1))
    (ADDRESS=(PROTOCOL = TCP)(HOST = 192.168.2.29)(PORT = 1521))
    )
 )

客户端的tnsnames.ora配置信息,需要加入每个service_name,其他的任何东西不需要改动,例如

YUCESHI1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.29)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test1)
    )
  )
YUCESHI2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.29)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test2)
    )
  )
YUCESH3 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.29)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test3)
    )
  )

动态监听步骤:

服务器端配置如下:

  1. 设置service_names:

alter system  set  service_names=test1,test2,test3;

2. 编写listener.ora文件:

LISTENER =
   (DESCRIPTION_LIST =
   (DESCRIPTION =
    (ADDRESS=(PROTOCOL = IPC) (KEY=EXTPRO1))
    (ADDRESS=(PROTOCOL = TCP)(HOST = 192.168.2.29)(PORT = 1521))
    )
    )

3.重新启动oracle实例,这样做才能使service_names生效。(前提是oracle处于open状态下才执行)

conn /as  sysdba;

shutdown immediate;

startup;

客户端配置:

1.编辑tnsnames.ora,保存后立即生效。

YUCESHI1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.29)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test1)
    )
  )
YUCESHI2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.29)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test2)
    )
  )
YUCESH3 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.29)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test3)
    )
  )

以上动态注册配置完毕。以上改为静态注册步骤。

1.只需要在服务器端修改listener.ora配置文件。并且多几个SID_DESC就行了。

配置如下:

LISTENER =
 (DESCRIPTION_LIST =
   (DESCRIPTION =
    (ADDRESS=(PROTOCOL = IPC) (KEY=EXTPRO1))
    (ADDRESS=(PROTOCOL = TCP)(HOST = 192.168.2.29)(PORT = 1521))
    )
 )

##上面是监听器配置部分,下面是数据库配置部分
SID_LIST_LISTENER =
 (SID_LIST =
  (SID_DESC =
   (GLOBAL_DBNAME = test1)
   (ORACLE_HOME = /opt/oracle/product/11.2.0/dbhome_1)
   (SID_NAME = orcl )
  )

(SID_DESC =
   (GLOBAL_DBNAME = test2)
   (ORACLE_HOME = /opt/oracle/product/11.2.0/dbhome_1)
   (SID_NAME = orcl )
  )

(SID_DESC =
   (GLOBAL_DBNAME = test3)
   (ORACLE_HOME = /opt/oracle/product/11.2.0/dbhome_1)
   (SID_NAME = orcl )
  )

)

2.重新启动监听:

su - oracle

lsnrctl  stop

lsnrctl  start

配置完成

时间: 2024-10-03 13:46:07

oracle动态注册和静态注册监听器的相关文章

oracle监听器动态注册于静态注册的区别

即静态注册,listener不知道实例的状态,只有在进程通过其连接数据库时才能知道,如果你想使用远程管理数据库就使用静态监听动态注册:listener实时的都知道实例的状态,数据库在关闭的时候会动态的从listener中注销,所以远程管理数据库的启动和停止就不行了. 4,如何判断是静态注册还是动态注册(1) 可以通过配置文件判断 动态注册 SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(PROGRAM = extproc)(SID_NAME = PLSExtP

oracle 共享服务连接静态注册服务

默认oracle的共享服务是注册到动态注册服务里面的 [email protected]> select * from v$version where rownum=1; BANNER -------------------------------------------------------------------------------------------------------------------------------------------------------------

ORACLE 动态注册和静态注册的区别(转)

1, oracle 10g 用netca方式建立的都默认为动态注册方式2,如果想改为静态注册的方式则在listener.ora 中加入如下内容即可 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = JEFF ) (OR

Android广播的使用(动态注册和静态注册)

1>判断网络状态网络广播(动态注册) package com.example.guangbo; import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.net.ConnectivityManager;import android.net.Networ

BroadcastReceiver 的动态注册和静态注册问题

最近开发的小项目涉及到notification通知栏的交互问题,通知栏的各种点击事件响应通过使用broadcast实现,由于一开始没有想到使用handler提交通知栏执行后的状态或者说是信息.一直纠结与怎么注册broadcast的问题,这里先说一下注册的事情. 众所周知,注册可以在manifest.xml里面注册,还有就是在代码里面注册. 在manifest里面的注册形式是这样子的: <receiver android:name=".继承broadcastReceiver的class&qu

Oracle监听静态注册和动态注册

静态注册和动态注册总结 一.什么是注册? 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样.在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务.)相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对应的服务名(一个

Oracle 动态/静态监听注册

一.动态监听 oracle监听器是一个独立的进程,通常在数据库实例启动前先启动,当oracle实例在open时,会动态向监听器程序注册其service_names和instance_name.实例启动的时候,PMON进程会根据instance_name,service_name参数将实例和服务动态注册到listerer中. 1. listener.ora默认配置文件 # cat /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.

动态注册广播和静态注册广播的区别

广播接收器注册一共有两种形式 : 静态注册和动态注册. 两者及其接收广播的区别: 1.动态注册的广播永远要快于静态注册的广播,不管静态注册的优先级设置的多高,不管动态注册的优先级有多低. 2.动态注册广播不是常驻型广播,也就是说广播跟随activity的生命周期.注意: 在activity结束前,移除广播接收器. 静态注册是常驻型,也就是说即使app已经退出,主要有相应的广播发出,依然可以接收到,但此种描述自Android 3.1开始有可能不再成立. 详情请关注 http://www.cnblo

Oracle 11.2.0.4 动态监听不注册

我所在的测试环境中有两个aix操作系统做成了HACMP + oracle11g 单实例.主备库. 当主库切换到备库时,发现动态监听不能注册. 查看/oracle/app/oracle/product/11.2.0/network/log/listener.log的时候发现有如下报错. 上面是我的监听日志,日志中有写warning的告警 上网搜索Doc ID 372959.1 得到答案,可以把监听日志中WARNING部分去掉 解决方法如下: 在监听配置文件最下面添加一行 SUBSCRIBE_FOR