Oracle静态监听和动态监听

来源:这里教程网 时间:2026-03-03 12:53:42 作者:

一、静态注册 静态注册指实例启动时读取 listener.ora 配置文件,将实例和服务注册到监听程序。无论何时启动一个数据库,默认都有两条信息注册到监听器中:实例和服务。

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC = 

     (GLOBAL_DBNAME = rman)

     (ORACLE_HOME = /u01/oracle)

     (SID_NAME = rman)

    )

   (SID_DESC =

     (GLOBAL_DBNAME = gel)

     (ORACLE_HOME = /u01/oracle)

     (SID_NAME = gl)

     )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))

    )

  )

说明: 1 (ORACLE_HOME = /u01/oracle) oracle_home 目录,测试不加也行 2 )本静态监听两个数据库实例,每个实例的静态监听写到 SID_DESC 3 )在数据库未 open 状态中,就可以远程连接到数据库,对数据库进行操作 4 )使用静态监听时,客户端的 tns 最好配置为 SERVICE_NAME ,当然也可以同时配置 SID SERVICE_NAME ,等数据库启动后, tns 中无论是 sid 还是 SERVICE_NAME 均能访问数据库

 

二、动态注册 动态注册不需要显示的配置 listener.ora 文件,实例启动的时候, PMON 进程根据 instance_name,service_name 参数将实例和服务动态注册到 listerer 中。如果没有设定 instance_name ,将使用 db_name 初始化参数值。如果没有设定 service_names ,将拼接 db_name db_domain 参数值来注册监听。

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC = 

     (GLOBAL_DBNAME = rman)

     (ORACLE_HOME = /u01/oracle)

     (SID_NAME = rman)

    )

   (SID_DESC =

     (GLOBAL_DBNAME = gel)

     (ORACLE_HOME = /u01/oracle)

     (SID_NAME = gl)

     )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))

    )

  )

说明: 1 )不需要人工干预在 lsnrctl start 后,会自动注册数据库的 instance_name,service_name ,然后 tns 不论使用 SID SERVICE_NAME 均可以连接上来 2 )修改了 SERVICE_NAME 或者 SID 不用修改 listener.ora 文件

相关推荐