ORACLE RAC心跳&&网络

1、 RAC默认心跳时间

       

版本

misscount

disktimeout

reboottime

10.2.0.1

60s

\

\

10.2.0.1+p4896338/10.2.0.2

60s

200s

3s

10.2.0.3

60s

200s

3s

       

OS

10G(R1&R2)

11G R1

第三方集群时

LINUX

60

30

600

UNIX&WINDOWS

30

30

600

   misscount:用于定义节点间心跳通信,即网络心跳
disktimeout:默认200秒,定义css进程与vote disk连接的超时时间;
reboottime:发生裂脑并且一个节点被踢出后,这个节点将在reboottime的时间内重启;默认是3秒;
[oracle@trsen01 ~]$ crsctl get css reboottime | more
3
[oracle@trsen01 ~]$ crsctl get css misscount | more
60
[oracle@trsen01 ~]$ crsctl get css disktimeout | more
200
默认时间可以修改:利用crsctl set css 来修改
2、cluster私有网络
在Oracle 10g/11g中,Oracle的私有网络(private network)包括clusterware的私有网络和数据库实例的私有网络:
clusterware的私有网络主要包括css数据的传送,即用一种特殊的ping命令来检测其他机器的状态;
数据库实例的私有网络,包括RDMS和ASM的,用于cache fusion(GCS/GES)数据的传输。
$CRS_HOME/bin/oifcfg getif命令来得到所有网络接口列表,这些信息保存在ocr中
[oracle@trsen01 cssd]$ /u01/app/oracle/product/10.2.0/crs_1/bin/oifcfg getif
eth0  192.168.8.0  global  public
eth1  10.1.1.0  global  cluster_interconnect
clusterware的私有网络,目前(10g/11g)只能使用一个网络接口,对应于/etc/hosts中定义的private hostname的那个网卡,可以通过查看ocssd的log来确定:
[    CSSD]2014-02-13 13:15:17.893 [3065748368] >TRACE:   clssgmPeerListener: Listening on (ADDRESS=(PROTOCOL=tcp)(DEV=22)(HOST=10.1.1.8)(PORT=15974))
与另个节点通信的信息
[    CSSD]2014-02-13 13:21:11.729 [3065748368] >TRACE:   clssgmConnectToNode:  connecting to node 2 using connect string ((ADDRESS=(PROTOCOL=tcp)(DEV=22)(HOST=10.1.1.9)(PORT=42409)))
3、oracle实例的私有网络
Oracle实例的心跳网络使用方式的优先级从高到低如下:
  (1) 如果使用了第三方集群的IPC,替换了对应$ORACLE_HOME/lib/libskgxnX.so文件,那么数据库实例的cache fusion会使用对应的网络协议,而忽略ocr中和数据库初始化参数中cluster_interconnects的配置
      (2)如果没有使用第三方IPC,则优先使用数据库初始化参数的cluster_interconnects配置,这个参数的格式为if1:if2:...:ifn,可以不同于crs的私有网络,需要注意的是,该参数不支持多个网卡的故障切换;
  (3) 没有上面两个配置,数据库会使用oifcfg列出的心跳的网络,在对应的告警日志中可以得到:
[oracle@trsen01 bdump]$ more alert_trsendb1.log
Thu Feb 13 14:59:06 CST 2014
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Interface type 1 eth1 10.1.1.0 configured from OCR for use as a cluster interconnect
Interface type 1 eth0 192.168.8.0 configured from OCR for use as  a public interface
Shared memory segment for instance monitoring created
......
Cluster communication is configured to use the following interface(s) for this instance
  10.1.1.8
       (4) 没有1和2的配置,并且oifcfg也没有配置cluster_interconnect,则数据库会使用共有网络进行心跳信息的传输,这种配置其实是配置失败的情况,数据库虽然能够启动,但急需DBA修正,在告警日志中可以看到:
  WARNING: No cluster interconnect has been specified. Depending on
  the communication driver configured Oracle cluster traffic
  may be directed to the public interface of this machine.
  Oracle recommends that RAC clustered databases be configured
  with a private interconnect for enhanced security and
  performance.
对于一个已经有的系统,可以用下面几种方法确认数据库实例的心跳配置,包括网卡名称,IP地址,使用的网络协议:
  (1) 最简单的方法:可以在数据库的后台报警日志中得到。具体参见上面列出的告警日志;
       (2) 使用oradebug ;
SQL> oradebug setmypid
Statement processed.
SQL> oradebug ipc
Information written to trace file.
SQL> oradebug tracefile_name
/u01/app/oracle/admin/trsendb/udump/trsendb1_ora_3138.trc里有下面一句话提示
......
Mapped regions
        Region[0] Id 1099173644 Base Address 0x20400000 Size 339738624 key 583797518
        rgnport 0xd1d796c lbuf 0 nrgns 1 flags 1
        SSKGXPT 0xd1d796c flags         socket no 12    IP 10.1.1.8     UDP 31474
......



你可能感兴趣的:(ORACLE,RAC)