技术开发 频道

Oracle RAC环境中连接的高可用

    5、fast Application notification

    1)overview

    典型的RAC安装可能产生大量cluster事件,它们被cluster中的内部组件用于管理cluster的高可用性。Fast Application notification(FAN)是这样一种特性:它过滤并发布那些被认为是意义重大的特殊目标的高可用性事件。有三种主要方法来将应用程序与FAN进程整合:

    *  server-side的callout,它可能用于包装脚本,或是执行安装在Database server的特定目录中。callouts可被编码用于影响本地组件。此外,如果部署了代理应用程序,callouts也可影响远程组件。代理应用程序可以包括已经存在的命令行接口server组件,例如SMTP mail servers和SNMP代理,或是客户程序。

    *  ONC(Oracle notification client)API,提供了通过TCP/IP协议实现的分布式发布/订阅协议。该API可被C和Java应用程序使用。使用该方法,RAC作为默认的事件发布者,所有可访问Database server的客户端C或Java应用程序简单的连接ONC API 库,并订阅FAN事件。当收到事件,应用程序可以执行相应的事件处理行为。一个ONS监听进程需要被在每个订阅了ONC的host上被start。这包括RAC环境中的每个node。

    *  应用程序也可通过Oracle JDBC隐式的连接cache,直接让Oracle JDBC库对FAN事件进程处理。使用这种方法,你无须写任何客户端的Java或C代码来处理FAN事件。也不用直接调用ONC API函数。

    note:EM与FAN是紧密结合的,无须再配置。

    2)fast Application notification的益处

    传统的环境中,client或是中间应用层连接到Database,是依赖连接超时、外带的轮询机制或是其他客户端的方法来获知系统的某个组件是否失败。而这种方式在应用程序可用性的重大影响在于它延长了宕机时间。

    使用FAN,重要的高可用性时间一旦被检测到,就会被发布,这使已经存在的计算资源可以得到更有效的利用。可以使其与企业的应用程序得到更好的整合,具体包括:中间层的连接管理器、IT管理平台(故障日志记录和e-mail或分页服务器)。

    FAN是一个分布的系统,在每个node上被enabled。这使得它更可靠,容错性更强,因为一个组件的失败可以被其他node监控到。所以,event notification可以被检测并pushed到任何一个node中。

    FAN 事件是与Oracle data guard broker、Oracle JDBC隐式连接缓冲、EM紧密结合的。Oracle Database 10g JDBC应用程序管理连接池无需custom的代码开发。如果enabled了隐式连接缓冲和fast connections failover,它们自动的与ONS进行了结合。

    3)FAN支持的事件类型

    4)FAN 事件的状态
 

    此表描述了FAN事件类型的管理资源可具体状态描述。

    5)FAN事件reasons

    每个管理资源的事件状态都是与相应的event reason相关联。reason进一步描述了触发的事件。上表就给出了可能的reason。
 

0
相关文章