Oracle Cluster的重构包括两部分:
一是clusterware层:
所有节点的Clusterware组成一个集群,并构成一 个集群成员列表(Cluster membership list)第个节点会分配一个成员ID(Node Id)这些Clusterware 之间互相通信 以了解彼此的状态, 并从中选出一个节点作为Master Node,Master Node负责管理集群状态的 变迁。当有节点加入或离开集群时,集群的状态会发生变迁 ,最终达到一个新的稳定状态。每个集群的稳定状态用一个数值表示,这个数值叫做Cluster Incarnation Number。达到新稳定状态时,这个数值会改变。
RAC 中的各个实例也构成了 一个实例成员列表 (Instance membership list) , 每个实例也使用Clusterware 层的node id作为身份标 识,这个ID在集群生命周期内是不会变的。RAC Instance在启动时会把LMON、DBWR等需要操作共享存储的进程 作为一个组注册 到Clusterware中,并从Clusterware获得node id作为组ID。
RAC集 群与节点集群是两个层次的集群,两个集群都 有脑裂、IO隔离等问题。这两个集群都有各自的故障检测机制。如果在RAC这一层检测到节点故障,RAC集群会做如下工作
(1)暂停对外服务
(2)RAC通知Clusterware, 并等待Clusterware完成集群重构 ,达到新的稳态。
(3)Clusterware完成重构后,会通知上层的RAC集群,RAC集群收到这个信息后开始自己的重构。
如下是CSSD的log,主要是Nodeapps类的资源:GSD、ONS、VIP、Listener,当node2加入node1的集群时:
[ CSSD]2011-07-09 16:34:39.332 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.vip
[ CSSD]2011-07-09 16:34:39.332 [118012816] >TRACE: clssgmAddMember: granted member(0) flags(0x12) node(1) grock (0x8be24c0/RES ora.node2.vip)
[ CSSD]2011-07-09 16:34:39.332 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8be24c0/RES ora.node2.vip)
[ CSSD]2011-07-09 16:34:39.335 [118012816] >TRACE: clssgmExitGrock: client 86 (0x8bf9ea8), grock RES ora.node2.vip, member 0
[ CSSD]2011-07-09 16:34:39.479 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.vip
[ CSSD]2011-07-09 16:34:39.479 [118012816] >TRACE: clssgmAddMember: granted member(0) flags(0x12) node(1) grock (0x8be24c0/RES ora.node2.vip)
[ CSSD]2011-07-09 16:34:39.479 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8be24c0/RES ora.node2.vip)
[ CSSD]2011-07-09 16:34:39.489 [118012816] >TRACE: clssgmExitGrock: client 87 (0x8bf9ea8), grock RES ora.node2.vip, member 0
[ CSSD]2011-07-09 16:34:39.520 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.vip
[ CSSD]2011-07-09 16:34:39.520 [118012816] >TRACE: clssgmAddMember: granted member(0) flags(0x12) node(1) grock (0x8be24c0/RES ora.node2.vip)
[ CSSD]2011-07-09 16:34:39.520 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8be24c0/RES ora.node2.vip)
[ CSSD]2011-07-09 16:34:39.651 [118012816] >TRACE: clssgmJoinGrock: grock RES ora.node2.gsd new client 0x8c09a20 with con 0x8c0de58, requested num -1
[ CSSD]2011-07-09 16:34:39.652 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8c0adb0/RES ora.node2.gsd)
[ CSSD]2011-07-09 16:34:39.655 [118012816] >TRACE: clssgmExitGrock: client 94 (0x8c09a20), grock RES ora.node2.gsd, member 0
[ CSSD]2011-07-09 16:34:39.655 [118012816] >TRACE: clssgmRemoveMember: grock(RES ora.node2.gsd) member(0/0x8bf7d08) nodeNum(1) flags(0x12) type(3)
[ CSSD]2011-07-09 16:34:39.779 [118012816] >TRACE: clssgmJoinGrock: grock RES ora.node2.gsd new client 0x8c09a20 with con 0x8c0de58, requested num -1
[ CSSD]2011-07-09 16:34:39.779 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8c0adb0/RES ora.node2.gsd)
[ CSSD]2011-07-09 16:34:39.799 [118012816] >TRACE: clssgmExitGrock: client 95 (0x8c09a20), grock RES ora.node2.gsd, member 0
[ CSSD]2011-07-09 16:34:39.799 [118012816] >TRACE: clssgmRemoveMember: grock(RES ora.node2.gsd) member(0/0x8bf7d08) nodeNum(1) flags(0x12) type(3)
[ CSSD]2011-07-09 16:34:39.939 [118012816] >TRACE: clssgmJoinGrock: grock RES ora.node2.gsd new client 0x8c09a20 with con 0x8bf7d08, requested num -1
[ CSSD]2011-07-09 16:34:39.939 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8c0adb0/RES ora.node2.gsd)
[ CSSD]2011-07-09 16:34:39.942 [118012816] >TRACE: clssgmExitGrock: client 96 (0x8c09a20), grock RES ora.node2.gsd, member 0
[ CSSD]2011-07-09 16:34:39.942 [118012816] >TRACE: clssgmRemoveMember: grock(RES ora.node2.gsd) member(0/0x8c0de58) nodeNum(1) flags(0x12) type(3)
[ CSSD]2011-07-09 16:34:39.947 [118012816] >TRACE: clssgmJoinGrock: grock RES ora.node2.gsd new client 0x8c09a20 with con 0x8c0de58, requested num -1
[ CSSD]2011-07-09 16:34:39.947 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8c0adb0/RES ora.node2.gsd)
[ CSSD]2011-07-09 16:34:40.147 [118012816] >TRACE: clssgmJoinGrock: grock RES ora.node2.ons new client 0x8c09a20 with con 0x8c0de58, requested num -1
[ CSSD]2011-07-09 16:34:40.147 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.ons
[ CSSD]2011-07-09 16:34:40.147 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8c0adb0/RES ora.node2.ons)
[ CSSD]2011-07-09 16:34:40.161 [118012816] >TRACE: clssgmExitGrock: client 100 (0x8c09a20), grock RES ora.node2.ons, member 0
[ CSSD]2011-07-09 16:34:40.572 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.ons
[ CSSD]2011-07-09 16:34:40.573 [118012816] >TRACE: clssgmAddMember: granted member(0) flags(0x12) node(1) grock (0x8c0adb0/RES ora.node2.ons)
[ CSSD]2011-07-09 16:34:40.573 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8c0adb0/RES ora.node2.ons)
[ CSSD]2011-07-09 16:34:40.654 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.ons
[ CSSD]2011-07-09 16:34:40.654 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8c0adb0/RES ora.node2.ons)
[ CSSD]2011-07-09 16:34:51.332 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock SRVM.DATABASE.NODEAPPS.node2
[ CSSD]2011-07-09 16:34:51.332 [118012816] >TRACE: clssgmAddMember: granted member(0) flags(0x1) node(1) grock (0x8c17ce8/SRVM.DATABASE.NODEAPPS.node2)
[ CSSD]2011-07-09 16:34:52.464 [118012816] >TRACE: clssgmExitGrock: client 1 (0x8c0b1e8), grock SRVM.DATABASE.NODEAPPS.node2, member 0
[ CSSD]2011-07-09 16:35:08.136 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.LISTENER_NODE2.lsnr
[ CSSD]2011-07-09 16:35:08.139 [118012816] >TRACE: clssgmExitGrock: client 105 (0x8c0b1e8), grock RES ora.node2.LISTENER_NODE2.lsnr, member 0
[ CSSD]2011-07-09 16:35:08.280 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.LISTENER_NODE2.lsnr
[ CSSD]2011-07-09 16:35:08.290 [118012816] >TRACE: clssgmExitGrock: client 106 (0x8c0b1e8), grock RES ora.node2.LISTENER_NODE2.lsnr, member 0
[ CSSD]2011-07-09 16:35:08.293 [118012816] >TRACE: clssgmJoinGrock: grock RES ora.node2.vip new client 0x8c0b1e8 with con 0x8c0d3e0, requested num -1
[ CSSD]2011-07-09 16:35:08.293 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.vip
[ CSSD]2011-07-09 16:35:08.293 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x12 0x12 grock (3/0x8be24c0/RES ora.node2.vip)
[ CSSD]2011-07-09 16:35:08.296 [118012816] >TRACE: clssgmExitGrock: client 107 (0x8c0b1e8), grock RES ora.node2.vip, member 0
[ CSSD]2011-07-09 16:35:08.314 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.LISTENER_NODE2.lsnr
[ CSSD]2011-07-09 16:35:08.327 [118012816] >TRACE: clssgmExitGrock: client 108 (0x8c0b1e8), grock RES ora.node2.LISTENER_NODE2.lsnr, member 0
[ CSSD]2011-07-09 16:35:08.346 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock RES ora.node2.LISTENER_NODE2.lsnr
[ CSSD]2011-07-09 16:35:39.404 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock SRVM.DATABASE.NODEAPPS.node2
[ CSSD]2011-07-09 16:36:16.854 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock SRVM.DATABASE.NODEAPPS.node2
[ CSSD]2011-07-09 16:36:52.500 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock SRVM.DATABASE.NODEAPPS.node2
[ CSSD]2011-07-09 16:37:28.327 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock SRVM.DATABASE.NODEAPPS.node2
[ CSSD]2011-07-09 16:38:04.017 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x1 0x1 grock (3/0x8c0af88/SRVM.DATABASE.NODEAPP
S.node2)
[ CSSD]2011-07-09 16:38:04.170 [118012816] >TRACE: clssgmExitGrock: client 1 (0x8be0e98), grock SRVM.DATABASE.NODEAPPS.node2, member 0
[ CSSD]2011-07-09 16:38:04.170 [118012816] >TRACE: clssgmRemoveMember: grock(SRVM.DATABASE.NODEAPPS.node2) member(0/0x8be0bf8) nodeNum(1) flags(0x1) typ
e(3)
[ CSSD]2011-07-09 16:38:39.274 [118012816] >TRACE: clssgmJoinGrock: grock SRVM.DATABASE.NODEAPPS.node2 new client 0x8be0bf8 with con 0x8c15920, requeste
d num -1
[ CSSD]2011-07-09 16:38:39.274 [118012816] >TRACE: clssgmAddGrockMember: adding member to grock SRVM.DATABASE.NODEAPPS.node2
[ CSSD]2011-07-09 16:38:39.274 [118012816] >TRACE: clssgmAddMember: granted member(0) flags(0x1) node(1) grock (0x8be25b8/SRVM.DATABASE.NODEAPPS.node2)
[ CSSD]2011-07-09 16:38:39.274 [118012816] >TRACE: clssgmQueueGrockEvent: lockName(SRVM.DATABASE.NODEAPPS.node2) type(2) count (1/1) xwaiters(0) event(1
) to memberNo(0)
[ CSSD]2011-07-09 16:38:39.274 [118012816] >TRACE: clssgmCommonAddMember: Local member(0) node(1) flags 0x1 0x1 grock (3/0x8be25b8/SRVM.DATABASE.NODEAPP
S.node2)
[ CSSD]2011-07-09 16:38:39.341 [118012816] >TRACE: clssgmExitGrock: client 1 (0x8be0bf8), grock SRVM.DATABASE.NODEAPPS.node2, member 0
[ CSSD]2011-07-09 16:38:39.341 [118012816] >TRACE: clssgmRemoveMember: grock(SRVM.DATABASE.NODEAPPS.node2) member(0/0x8bf99d0) nodeNum(1) flags(0x1) typ
e(3)
[ CSSD]2011-07-09 16:38:52.263 [131775376] >TRACE: clssnmConnComplete: properties node node2, number 2, 3,5,6,7,10,13
[ CSSD]2011-07-09 16:38:52.263 [131775376] >TRACE: clssnmConnComplete: node 2, node2, con(0x8bf6d90), probcon((nil)), ninfcon((nil)), node unique 131020
0722, prev unique 0, msg unique 1310200722 node state 0
[ CSSD]2011-07-09 16:38:53.569 [131775376] >TRACE: clssnmHandleJoin: node node2, number 2 JOINING, state 0->1, ninfendp 0x8bf6d90
[ CSSD]2011-07-09 16:38:54.437 [131775376] >TRACE: clssnmUpdateNodeData: node 2 (node2) data length 63 data (ADDRESS=(PROTOCOL=tcp)(DEV=22)(HOST=10.10.1
7.222)(PORT=48719))
[ CSSD]2011-07-09 16:38:54.441 [131775376] >USER: clssnmHandleUpdate: NODE 2 (node2) IS ACTIVE MEMBER OF CLUSTER
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/758322/viewspace-702233/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/758322/viewspace-702233/