【DATAGUARD】DATAGUARD 与 静态监听

在Oracle DATAGUARD实验中必须要用到静态监听,否则很严重(例子前面创建dg的过程中有遇到)

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

SID_LIST_LISTENER =

(SID_LIST =

  (SID_DESC =

    (GLOBAL_DBNAME = Oranet)

    (SID_NAME = yangdb)

  )

)

LISTENER =

  (DESCRIPTION =

    (

      ADDRESS = (HOST = 172.18.85.21)(PROTOCOL = TCP)(PORT = 1521)

    )

  )

  

SID_LIST_LISTENER中:

GLOBAL_DBNAME表示向外提供的服务名,

SID_NAME是提供注册的实例

在tnsnames.ora文件中的CONNECT_DATA部分,可分别选择SERVICE_NAME=Oranet或SID=yangdb为客户端提供连接。

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

在DATAGUARD架构中,我们需要将备库启动到mount状态,并应用主库的redo日志文件。因此,主库和备库要能相互监听到对方。在动态监听的情况下,如果实例没有启动到open状态,就无法通过网络将服务注册到数据库,而只有静态监听可以完成这个任务。让实例启动时读取listener.ora配置文件,将实例和服务注册到监听程序。

LSNRCTL> status

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac3)(PORT=1521)))

STATUS of the LISTENER

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

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date                08-SEP-2011 11:42:07

Uptime                    0 days 0 hr. 14 min. 1 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /opt/oracle/11.2.0/yangdb/network/admin/listener.ora

Listener Log File         /opt/oracle/diag/tnslsnr/rac3/listener/alert/log.xml

Listening Endpoints Summary...

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

Services Summary...

Service "yangdb" has 1 instance(s).

  Instance "yangdb", status UNKNOWN, has 1 handler(s) for this service...

Service "rac" has 1 instance(s).

  Instance "yangdb", status BLOCKED, has 1 handler(s) for this service...

The command completed successfully

如上面显示的blocked 状态!即阻塞状态,不能对外提供服务!

下面显示的是我配置的静态监听内容以及TNS文件内容,为listener.ora添加静态监听:

oracle@rac3:/opt/oracle/11.2.0/yangdb/network/admin>cat tnsnames.ora 

# tnsnames.ora Network Configuration File: /opt/oracle/11.2.0/yangdb/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

yangdb =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.250.7.241)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = yangdb)

    )

  )

rac =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.250.7.200)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = rac)

    )

  )

oracle@rac3:/opt/oracle/11.2.0/yangdb/network/admin>cat listener.ora 

# listener.ora Network Configuration File: /opt/oracle/11.2.0/yangdb/network/admin/listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

 (SID_LIST =

  (SID_DESC =

   (SID_NAME = PLSExtProc)

    (ORACLE_HOME = /opt/oracle/11.2.0/yangdb)

    (PROGRAM = extproc)

  )

 (SID_DESC =

  (GLOBAL_DBNAME = yangdb)

    (ORACLE_HOME = /opt/oracle/11.2.0/yangdb)

  (SID_NAME = yangdb)

 )

)

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = rac3)(PORT = 1521))

    )

  )

ADR_BASE_LISTENER = /opt/oracle

oracle@rac3:/opt/oracle/11.2.0/yangdb/network/admin>lsnrctl reload

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 09-SEP-2011 22:44:24

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

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

The command completed successfully

oracle@rac3:/opt/oracle/11.2.0/yangdb/network/admin>lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 09-SEP-2011 22:44:33

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

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

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

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date                08-SEP-2011 13:18:24

Uptime                    1 days 9 hr. 26 min. 9 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /opt/oracle/11.2.0/yangdb/network/admin/listener.ora

Listener Log File         /opt/oracle/diag/tnslsnr/rac3/listener/alert/log.xml

Listening Endpoints Summary...

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

Services Summary...

Service "PLSExtProc" has 1 instance(s).

  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...

Service "yangdb" has 2 instance(s).

  Instance "yangdb", status UNKNOWN, has 1 handler(s) for this service...

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

The command completed successfully

oracle@rac3:/opt/oracle/11.2.0/yangdb/network/admin>

时间: 2024-08-27 04:56:38

【DATAGUARD】DATAGUARD 与 静态监听的相关文章

Oracle中静态监听导致的ORA-12523错误

今天配置完共享服务器模式之后发现登录过程中报错ORA-12523,排查错误之后发现是静态监听惹的祸. 本机之上有两个监听,一个静态监听1521端口,一个动态监听1526端口. LISTENER= (DESCRIPTION=  (ADDRESS_LIST=    (ADDRESS=(PROTOCOL=tcp)(HOST=jp)(PORT=1521))    (ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))) LSNR2= (DESCRIPTION=  (ADDRESS_

配置静态监听解决ORA-12514错误的案例(转)

今天做Linux下DG配置的时候,遇到一个现象,tnsname.ora文件配置都正常,tnsping也正常,监听也正常,但是仍然报ORA-12514错误:   SQL> set lin 130 pages 130  SQL> select dest_id,error from v$archive_dest;      DEST_ID ERROR ---------- ----------------------------------------------------------------

【oracle】动态监听与静态监听

本机客户端以sysdba身份登陆oracle数据库后 用shutdown immediate成功的关闭了数据库. 可是startup的时候,却提示 ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 查看listener.ora配置文件后,发现配置的动态监听. 动态监听会时时反应数据库的状态 依赖pmon进程的动态注册,而不像静态监听需要加载listener.ora文件的sid_list_listener部分.之所以无法再启动数据库,是由于数据库关闭后,监听器已经注销了此

Oracle 静态监听注册详解

Oracle 静态监听注册详解        网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as4 下的oracle 10gR2.0.1 举一个具体的例子 1.在 $ORACLE_HOME/network/admin/listener.ora 文件中加入一个静态注册的节点 [oracle@prudent oracle]$ cd $ORACLE_HOME/network/admin [oracle@prudent admin]$ vi

[20160513]Restrict Session与静态监听.txt

[20160513]Restrict Session与静态监听.txt --给同事讲解动静态监听时,一次测试,当执行后alter system enable restricted session;发现远程用户依旧可以登录,检查发现是静态 --监听注册搞的鬼,做一个记录.并且把各种情况做一个总结: 1.环境: SYS@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER --------------------

oracle静态监听和动态监听

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

Oracle静态监听注册详解

网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as4 下的oracle 10gR2.0.1 举一个具体的例子 1.在 $ORACLE_HOME/network/admin/listener.ora 文件中加入一个静态注册的节点 [oracle@prudent oracle]$ cd $ORACLE_HOME/network/admin [oracle@prudent admin]$ vi listener.ora # listene

【RAC】srvctl管理工具添加新监听和静态注册

srvctl 添加监听的语法如下: grid@rac1:/home/grid>srvctl add listener -h 将监听程序配置添加到 Oracle Clusterware. 用法: srvctl add listener [-l ] [-s] [-p "[TCP:][, ...][/IPC:][/NMP:][/TCPS:] [/SDP:]"] [-o ] [-k ]     -l           监听程序名称 (默认名称为 LISTENER)     -o    

ORA-12514 监听错误解决

错误现象: [oracle@prudentwoo admin]$ sqlplussystem/oracle@PRUDENTWOO SQL*Plus: Release 11.2.0.1.0 Production onWed Dec 12 03:23:29 2012 Copyright (c) 1982, 2009, Oracle.  All rights reserved.   ERROR: ORA-12514: TNS:listenerdoes not currently know of ser