Oracle RAC 日常运维:节点管理与常见故障处理
一、Oracle RAC节点管理概述
Oracle RAC(Real Application Clusters)通过多节点共享存储和内存实现高可用性,节点管理是RAC运维的核心。节点管理涉及节点启动、停止、状态监控和故障切换等操作。RAC节点通过VIP(Virtual IP)对外提供服务,当节点故障时,VIP会自动漂移到健康节点,确保服务不中断。
#publish-mermaid-0-1791635466855{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-0-1791635466855 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-0-1791635466855 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-0-1791635466855 .error-icon{fill:#552222;}#publish-mermaid-0-1791635466855 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-0-1791635466855 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-0-1791635466855 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-0-1791635466855 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-0-1791635466855 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-0-1791635466855 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-0-1791635466855 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-0-1791635466855 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-0-1791635466855 .marker.cross{stroke:#333333;}#publish-mermaid-0-1791635466855 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-0-1791635466855 p{margin:0;}#publish-mermaid-0-1791635466855 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#publish-mermaid-0-1791635466855 .cluster-label text{fill:#333;}#publish-mermaid-0-1791635466855 .cluster-label span{color:#333;}#publish-mermaid-0-1791635466855 .cluster-label span p{background-color:transparent;}#publish-mermaid-0-1791635466855 .label text,#publish-mermaid-0-1791635466855 span{fill:#333;color:#333;}#publish-mermaid-0-1791635466855 .node rect,#publish-mermaid-0-1791635466855 .node circle,#publish-mermaid-0-1791635466855 .node ellipse,#publish-mermaid-0-1791635466855 .node polygon,#publish-mermaid-0-1791635466855 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#publish-mermaid-0-1791635466855 .rough-node .label text,#publish-mermaid-0-1791635466855 .node .label text,#publish-mermaid-0-1791635466855 .image-shape .label,#publish-mermaid-0-1791635466855 .icon-shape .label{text-anchor:middle;}#publish-mermaid-0-1791635466855 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#publish-mermaid-0-1791635466855 .rough-node .label,#publish-mermaid-0-1791635466855 .node .label,#publish-mermaid-0-1791635466855 .image-shape .label,#publish-mermaid-0-1791635466855 .icon-shape .label{text-align:center;}#publish-mermaid-0-1791635466855 .node.clickable{cursor:pointer;}#publish-mermaid-0-1791635466855 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#publish-mermaid-0-1791635466855 .arrowheadPath{fill:#333333;}#publish-mermaid-0-1791635466855 .edgePath .path{stroke:#333333;stroke-width:1px;}#publish-mermaid-0-1791635466855 .flowchart-link{stroke:#333333;fill:none;}#publish-mermaid-0-1791635466855 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-0-1791635466855 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#publish-mermaid-0-1791635466855 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-0-1791635466855 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#publish-mermaid-0-1791635466855 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#publish-mermaid-0-1791635466855 .cluster text{fill:#333;}#publish-mermaid-0-1791635466855 .cluster span{color:#333;}#publish-mermaid-0-1791635466855 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#publish-mermaid-0-1791635466855 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#publish-mermaid-0-1791635466855 rect.text{fill:none;stroke-width:0;}#publish-mermaid-0-1791635466855 .icon-shape,#publish-mermaid-0-1791635466855 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-0-1791635466855 .icon-shape p,#publish-mermaid-0-1791635466855 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#publish-mermaid-0-1791635466855 .icon-shape .label rect,#publish-mermaid-0-1791635466855 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-0-1791635466855 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#publish-mermaid-0-1791635466855 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#publish-mermaid-0-1791635466855 .node .neo-node{stroke:#9370DB;}#publish-mermaid-0-1791635466855 [data-look=\”neo\”].node rect,#publish-mermaid-0-1791635466855 [data-look=\”neo\”].cluster rect,#publish-mermaid-0-1791635466855 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-0-1791635466855 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-0-1791635466855 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-0-1791635466855 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-0-1791635466855 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-0-1791635466855 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-0-1791635466855 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-0-1791635466855 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-0-1791635466855 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-0-1791635466855 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}正常异常
启动RAC集群
检查节点状态
启动实例
修复节点故障
注册VIP服务
集群服务就绪
上图展示了RAC节点启动的完整流程,从检查节点状态到最终集群服务就绪,确保每个节点在加入集群前都处于健康状态。
1.1 节点状态检查
使用crsctl check crs命令检查集群资源状态,确保所有关键资源(如VIP、SCAN、监听器)都处于online状态。节点状态包括online、offline和unknown三种,需要定期监控节点状态变化。
集群控制台节点2节点1操作员集群控制台节点2节点1操作员#publish-mermaid-1-1791635466897{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-1-1791635466897 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-1-1791635466897 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-1-1791635466897 .error-icon{fill:#552222;}#publish-mermaid-1-1791635466897 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-1-1791635466897 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-1-1791635466897 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-1-1791635466897 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-1-1791635466897 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-1-1791635466897 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-1-1791635466897 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-1-1791635466897 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-1-1791635466897 .marker.cross{stroke:#333333;}#publish-mermaid-1-1791635466897 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-1-1791635466897 p{margin:0;}#publish-mermaid-1-1791635466897 .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#publish-mermaid-1-1791635466897 rect.actor.outer-path[data-look=\”neo\”]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-1-1791635466897 rect.note[data-look=\”neo\”]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-1-1791635466897 text.actor>tspan{fill:black;stroke:none;}#publish-mermaid-1-1791635466897 .actor-line{stroke:#9370DB;}#publish-mermaid-1-1791635466897 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#publish-mermaid-1-1791635466897 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#publish-mermaid-1-1791635466897 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#publish-mermaid-1-1791635466897 [id$=\”-arrowhead\”] path{fill:#333;stroke:#333;}#publish-mermaid-1-1791635466897 .sequenceNumber{fill:white;}#publish-mermaid-1-1791635466897 [id$=\”-sequencenumber\”]{fill:#333;}#publish-mermaid-1-1791635466897 [id$=\”-crosshead\”] path{fill:#333;stroke:#333;}#publish-mermaid-1-1791635466897 .messageText{fill:#333;stroke:none;}#publish-mermaid-1-1791635466897 .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#publish-mermaid-1-1791635466897 .labelText,#publish-mermaid-1-1791635466897 .labelText>tspan{fill:black;stroke:none;}#publish-mermaid-1-1791635466897 .loopText,#publish-mermaid-1-1791635466897 .loopText>tspan{fill:black;stroke:none;}#publish-mermaid-1-1791635466897 .sectionTitle,#publish-mermaid-1-1791635466897 .sectionTitle>tspan{fill:black;stroke:none;}#publish-mermaid-1-1791635466897 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#publish-mermaid-1-1791635466897 .note{stroke:#aaaa33;fill:#fff5ad;}#publish-mermaid-1-1791635466897 .noteText,#publish-mermaid-1-1791635466897 .noteText>tspan{fill:black;stroke:none;font-weight:normal;}#publish-mermaid-1-1791635466897 .activation0{fill:#f4f4f4;stroke:#666;}#publish-mermaid-1-1791635466897 .activation1{fill:#f4f4f4;stroke:#666;}#publish-mermaid-1-1791635466897 .activation2{fill:#f4f4f4;stroke:#666;}#publish-mermaid-1-1791635466897 .actorPopupMenu{position:absolute;}#publish-mermaid-1-1791635466897 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#publish-mermaid-1-1791635466897 .actor-man circle,#publish-mermaid-1-1791635466897 line{fill:#ECECFF;stroke-width:2px;}#publish-mermaid-1-1791635466897 g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#publish-mermaid-1-1791635466897 .node .neo-node{stroke:#9370DB;}#publish-mermaid-1-1791635466897 [data-look=\”neo\”].node rect,#publish-mermaid-1-1791635466897 [data-look=\”neo\”].cluster rect,#publish-mermaid-1-1791635466897 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-1-1791635466897 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-1-1791635466897 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-1-1791635466897 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-1-1791635466897 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-1-1791635466897 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-1-1791635466897 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-1-1791635466897 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-1-1791635466897 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-1-1791635466897 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}执行crsctl check crs返回资源状态执行crsctl check crs返回资源状态汇总节点状态显示集群健康状态
通过时序图展示了节点状态检查的交互过程,操作员依次检查各节点状态并汇总到集群控制台。
二、节点状态监控与切换
2.1 节点状态监控
使用srvctl status nodeapps -n <node_name>命令监控节点应用状态,包括VIP、GSD和ONS服务。节点状态监控是RAC高可用性的基础,需要实时监控节点健康状态。
#publish-mermaid-2-1791635466921{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-2-1791635466921 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-2-1791635466921 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-2-1791635466921 .error-icon{fill:#552222;}#publish-mermaid-2-1791635466921 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-2-1791635466921 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-2-1791635466921 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-2-1791635466921 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-2-1791635466921 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-2-1791635466921 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-2-1791635466921 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-2-1791635466921 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-2-1791635466921 .marker.cross{stroke:#333333;}#publish-mermaid-2-1791635466921 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-2-1791635466921 p{margin:0;}#publish-mermaid-2-1791635466921 defs [id$=\”-barbEnd\”]{fill:#333333;stroke:#333333;}#publish-mermaid-2-1791635466921 g.stateGroup text{fill:#9370DB;stroke:none;font-size:10px;}#publish-mermaid-2-1791635466921 g.stateGroup text{fill:#333;stroke:none;font-size:10px;}#publish-mermaid-2-1791635466921 g.stateGroup .state-title{font-weight:bolder;fill:#131300;}#publish-mermaid-2-1791635466921 g.stateGroup rect{fill:#ECECFF;stroke:#9370DB;}#publish-mermaid-2-1791635466921 g.stateGroup line{stroke:#333333;stroke-width:1;}#publish-mermaid-2-1791635466921 .transition{stroke:#333333;stroke-width:1;fill:none;}#publish-mermaid-2-1791635466921 .stateGroup .composit{fill:white;border-bottom:1px;}#publish-mermaid-2-1791635466921 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#publish-mermaid-2-1791635466921 .state-note{stroke:#aaaa33;fill:#fff5ad;}#publish-mermaid-2-1791635466921 .state-note text{fill:black;stroke:none;font-size:10px;}#publish-mermaid-2-1791635466921 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#publish-mermaid-2-1791635466921 .edgeLabel .label rect{fill:#ECECFF;opacity:0.5;}#publish-mermaid-2-1791635466921 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-2-1791635466921 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#publish-mermaid-2-1791635466921 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-2-1791635466921 .edgeLabel .label text{fill:#333;}#publish-mermaid-2-1791635466921 .label div .edgeLabel{color:#333;}#publish-mermaid-2-1791635466921 .stateLabel text{fill:#131300;font-size:10px;font-weight:bold;}#publish-mermaid-2-1791635466921 .node circle.state-start{fill:#333333;stroke:#333333;}#publish-mermaid-2-1791635466921 .node .fork-join{fill:#333333;stroke:#333333;}#publish-mermaid-2-1791635466921 .node circle.state-end{fill:#9370DB;stroke:white;stroke-width:1.5;}#publish-mermaid-2-1791635466921 .end-state-inner{fill:white;stroke-width:1.5;}#publish-mermaid-2-1791635466921 .node rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#publish-mermaid-2-1791635466921 .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#publish-mermaid-2-1791635466921 [id$=\”-barbEnd\”]{fill:#333333;}#publish-mermaid-2-1791635466921 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#publish-mermaid-2-1791635466921 .cluster-label,#publish-mermaid-2-1791635466921 .nodeLabel{color:#131300;}#publish-mermaid-2-1791635466921 .statediagram-cluster rect.outer{rx:5px;ry:5px;}#publish-mermaid-2-1791635466921 .statediagram-state .divider{stroke:#9370DB;}#publish-mermaid-2-1791635466921 .statediagram-state .title-state{rx:5px;ry:5px;}#publish-mermaid-2-1791635466921 .statediagram-cluster.statediagram-cluster .inner{fill:white;}#publish-mermaid-2-1791635466921 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#f0f0f0;}#publish-mermaid-2-1791635466921 .statediagram-cluster .inner{rx:0;ry:0;}#publish-mermaid-2-1791635466921 .statediagram-state rect.basic{rx:5px;ry:5px;}#publish-mermaid-2-1791635466921 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#f0f0f0;}#publish-mermaid-2-1791635466921 .note-edge{stroke-dasharray:5;}#publish-mermaid-2-1791635466921 .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#publish-mermaid-2-1791635466921 .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#publish-mermaid-2-1791635466921 .statediagram-note text{fill:black;}#publish-mermaid-2-1791635466921 .statediagram-note .nodeLabel{color:black;}#publish-mermaid-2-1791635466921 .statediagram .edgeLabel{color:red;}#publish-mermaid-2-1791635466921 [id$=\”-dependencyStart\”],#publish-mermaid-2-1791635466921 [id$=\”-dependencyEnd\”]{fill:#333333;stroke:#333333;stroke-width:1;}#publish-mermaid-2-1791635466921 .statediagramTitleText{text-anchor:middle;font-size:18px;fill:#333;}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1;}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].statediagram-cluster rect.outer{rx:5px;ry:5px;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-2-1791635466921 .node .neo-node{stroke:#9370DB;}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].node rect,#publish-mermaid-2-1791635466921 [data-look=\”neo\”].cluster rect,#publish-mermaid-2-1791635466921 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-2-1791635466921 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-2-1791635466921 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}节点宕机启动维护维护完成节点升级升级完成
正常状态
故障状态
维护状态
升级状态
状态图展示了节点可能处于的四种状态:正常、故障、维护和升级,以及状态间的转换条件。
2.2 节点切换操作
当需要将节点从集群中移除(如维护)时,使用srvctl stop nodeapps -n <node_name>命令停止节点应用,然后执行srvctl remove node -n <node_name>命令从集群中移除节点。节点切换需要确保服务不中断。
#publish-mermaid-3-1791635466965{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-3-1791635466965 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-3-1791635466965 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-3-1791635466965 .error-icon{fill:#552222;}#publish-mermaid-3-1791635466965 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-3-1791635466965 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-3-1791635466965 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-3-1791635466965 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-3-1791635466965 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-3-1791635466965 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-3-1791635466965 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-3-1791635466965 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-3-1791635466965 .marker.cross{stroke:#333333;}#publish-mermaid-3-1791635466965 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-3-1791635466965 p{margin:0;}#publish-mermaid-3-1791635466965 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#publish-mermaid-3-1791635466965 .cluster-label text{fill:#333;}#publish-mermaid-3-1791635466965 .cluster-label span{color:#333;}#publish-mermaid-3-1791635466965 .cluster-label span p{background-color:transparent;}#publish-mermaid-3-1791635466965 .label text,#publish-mermaid-3-1791635466965 span{fill:#333;color:#333;}#publish-mermaid-3-1791635466965 .node rect,#publish-mermaid-3-1791635466965 .node circle,#publish-mermaid-3-1791635466965 .node ellipse,#publish-mermaid-3-1791635466965 .node polygon,#publish-mermaid-3-1791635466965 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#publish-mermaid-3-1791635466965 .rough-node .label text,#publish-mermaid-3-1791635466965 .node .label text,#publish-mermaid-3-1791635466965 .image-shape .label,#publish-mermaid-3-1791635466965 .icon-shape .label{text-anchor:middle;}#publish-mermaid-3-1791635466965 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#publish-mermaid-3-1791635466965 .rough-node .label,#publish-mermaid-3-1791635466965 .node .label,#publish-mermaid-3-1791635466965 .image-shape .label,#publish-mermaid-3-1791635466965 .icon-shape .label{text-align:center;}#publish-mermaid-3-1791635466965 .node.clickable{cursor:pointer;}#publish-mermaid-3-1791635466965 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#publish-mermaid-3-1791635466965 .arrowheadPath{fill:#333333;}#publish-mermaid-3-1791635466965 .edgePath .path{stroke:#333333;stroke-width:1px;}#publish-mermaid-3-1791635466965 .flowchart-link{stroke:#333333;fill:none;}#publish-mermaid-3-1791635466965 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-3-1791635466965 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#publish-mermaid-3-1791635466965 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-3-1791635466965 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#publish-mermaid-3-1791635466965 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#publish-mermaid-3-1791635466965 .cluster text{fill:#333;}#publish-mermaid-3-1791635466965 .cluster span{color:#333;}#publish-mermaid-3-1791635466965 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#publish-mermaid-3-1791635466965 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#publish-mermaid-3-1791635466965 rect.text{fill:none;stroke-width:0;}#publish-mermaid-3-1791635466965 .icon-shape,#publish-mermaid-3-1791635466965 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-3-1791635466965 .icon-shape p,#publish-mermaid-3-1791635466965 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#publish-mermaid-3-1791635466965 .icon-shape .label rect,#publish-mermaid-3-1791635466965 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-3-1791635466965 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#publish-mermaid-3-1791635466965 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#publish-mermaid-3-1791635466965 .node .neo-node{stroke:#9370DB;}#publish-mermaid-3-1791635466965 [data-look=\”neo\”].node rect,#publish-mermaid-3-1791635466965 [data-look=\”neo\”].cluster rect,#publish-mermaid-3-1791635466965 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-3-1791635466965 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-3-1791635466965 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-3-1791635466965 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-3-1791635466965 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-3-1791635466965 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-3-1791635466965 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-3-1791635466965 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-3-1791635466965 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-3-1791635466965 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}依赖正常依赖异常
准备节点切换
检查服务依赖
停止节点应用
解决依赖问题
移除节点
验证切换结果
流程图展示了节点切换的完整流程,从准备到验证结果,确保每个步骤都正确执行。
三、常见故障处理:节点宕机
3.1 节点宕机检测
当节点宕机时,RAC会自动检测到节点故障,并将该节点的VIP漂移到健康节点。使用crsctl stat res -t命令可以查看资源状态,确认VIP是否已成功漂移。
集群控制台节点3节点2节点1集群控制台节点3节点2节点1#publish-mermaid-4-1791635467007{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-4-1791635467007 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-4-1791635467007 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-4-1791635467007 .error-icon{fill:#552222;}#publish-mermaid-4-1791635467007 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-4-1791635467007 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-4-1791635467007 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-4-1791635467007 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-4-1791635467007 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-4-1791635467007 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-4-1791635467007 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-4-1791635467007 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-4-1791635467007 .marker.cross{stroke:#333333;}#publish-mermaid-4-1791635467007 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-4-1791635467007 p{margin:0;}#publish-mermaid-4-1791635467007 .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#publish-mermaid-4-1791635467007 rect.actor.outer-path[data-look=\”neo\”]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-4-1791635467007 rect.note[data-look=\”neo\”]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-4-1791635467007 text.actor>tspan{fill:black;stroke:none;}#publish-mermaid-4-1791635467007 .actor-line{stroke:#9370DB;}#publish-mermaid-4-1791635467007 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#publish-mermaid-4-1791635467007 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#publish-mermaid-4-1791635467007 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#publish-mermaid-4-1791635467007 [id$=\”-arrowhead\”] path{fill:#333;stroke:#333;}#publish-mermaid-4-1791635467007 .sequenceNumber{fill:white;}#publish-mermaid-4-1791635467007 [id$=\”-sequencenumber\”]{fill:#333;}#publish-mermaid-4-1791635467007 [id$=\”-crosshead\”] path{fill:#333;stroke:#333;}#publish-mermaid-4-1791635467007 .messageText{fill:#333;stroke:none;}#publish-mermaid-4-1791635467007 .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#publish-mermaid-4-1791635467007 .labelText,#publish-mermaid-4-1791635467007 .labelText>tspan{fill:black;stroke:none;}#publish-mermaid-4-1791635467007 .loopText,#publish-mermaid-4-1791635467007 .loopText>tspan{fill:black;stroke:none;}#publish-mermaid-4-1791635467007 .sectionTitle,#publish-mermaid-4-1791635467007 .sectionTitle>tspan{fill:black;stroke:none;}#publish-mermaid-4-1791635467007 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#publish-mermaid-4-1791635467007 .note{stroke:#aaaa33;fill:#fff5ad;}#publish-mermaid-4-1791635467007 .noteText,#publish-mermaid-4-1791635467007 .noteText>tspan{fill:black;stroke:none;font-weight:normal;}#publish-mermaid-4-1791635467007 .activation0{fill:#f4f4f4;stroke:#666;}#publish-mermaid-4-1791635467007 .activation1{fill:#f4f4f4;stroke:#666;}#publish-mermaid-4-1791635467007 .activation2{fill:#f4f4f4;stroke:#666;}#publish-mermaid-4-1791635467007 .actorPopupMenu{position:absolute;}#publish-mermaid-4-1791635467007 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#publish-mermaid-4-1791635467007 .actor-man circle,#publish-mermaid-4-1791635467007 line{fill:#ECECFF;stroke-width:2px;}#publish-mermaid-4-1791635467007 g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#publish-mermaid-4-1791635467007 .node .neo-node{stroke:#9370DB;}#publish-mermaid-4-1791635467007 [data-look=\”neo\”].node rect,#publish-mermaid-4-1791635467007 [data-look=\”neo\”].cluster rect,#publish-mermaid-4-1791635467007 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-4-1791635467007 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-4-1791635467007 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-4-1791635467007 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-4-1791635467007 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-4-1791635467007 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-4-1791635467007 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-4-1791635467007 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-4-1791635467007 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-4-1791635467007 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}心跳检测响应心跳心跳检测无响应报告节点3故障漂移VIP到节点2VIP漂移完成
时序图展示了节点宕机检测和VIP漂移的过程,当节点3无响应时,集群控制台将VIP漂移到节点2。
3.2 节点恢复操作
节点恢复需要先修复硬件或软件问题,然后使用srvctl start nodeapps -n <node_name>命令启动节点应用,最后使用srvctl start instance -d <db_name> -i <instance_name>命令启动数据库实例。
#publish-mermaid-5-1791635467030{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-5-1791635467030 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-5-1791635467030 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-5-1791635467030 .error-icon{fill:#552222;}#publish-mermaid-5-1791635467030 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-5-1791635467030 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-5-1791635467030 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-5-1791635467030 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-5-1791635467030 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-5-1791635467030 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-5-1791635467030 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-5-1791635467030 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-5-1791635467030 .marker.cross{stroke:#333333;}#publish-mermaid-5-1791635467030 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-5-1791635467030 p{margin:0;}#publish-mermaid-5-1791635467030 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#publish-mermaid-5-1791635467030 .cluster-label text{fill:#333;}#publish-mermaid-5-1791635467030 .cluster-label span{color:#333;}#publish-mermaid-5-1791635467030 .cluster-label span p{background-color:transparent;}#publish-mermaid-5-1791635467030 .label text,#publish-mermaid-5-1791635467030 span{fill:#333;color:#333;}#publish-mermaid-5-1791635467030 .node rect,#publish-mermaid-5-1791635467030 .node circle,#publish-mermaid-5-1791635467030 .node ellipse,#publish-mermaid-5-1791635467030 .node polygon,#publish-mermaid-5-1791635467030 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#publish-mermaid-5-1791635467030 .rough-node .label text,#publish-mermaid-5-1791635467030 .node .label text,#publish-mermaid-5-1791635467030 .image-shape .label,#publish-mermaid-5-1791635467030 .icon-shape .label{text-anchor:middle;}#publish-mermaid-5-1791635467030 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#publish-mermaid-5-1791635467030 .rough-node .label,#publish-mermaid-5-1791635467030 .node .label,#publish-mermaid-5-1791635467030 .image-shape .label,#publish-mermaid-5-1791635467030 .icon-shape .label{text-align:center;}#publish-mermaid-5-1791635467030 .node.clickable{cursor:pointer;}#publish-mermaid-5-1791635467030 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#publish-mermaid-5-1791635467030 .arrowheadPath{fill:#333333;}#publish-mermaid-5-1791635467030 .edgePath .path{stroke:#333333;stroke-width:1px;}#publish-mermaid-5-1791635467030 .flowchart-link{stroke:#333333;fill:none;}#publish-mermaid-5-1791635467030 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-5-1791635467030 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#publish-mermaid-5-1791635467030 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-5-1791635467030 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#publish-mermaid-5-1791635467030 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#publish-mermaid-5-1791635467030 .cluster text{fill:#333;}#publish-mermaid-5-1791635467030 .cluster span{color:#333;}#publish-mermaid-5-1791635467030 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#publish-mermaid-5-1791635467030 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#publish-mermaid-5-1791635467030 rect.text{fill:none;stroke-width:0;}#publish-mermaid-5-1791635467030 .icon-shape,#publish-mermaid-5-1791635467030 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-5-1791635467030 .icon-shape p,#publish-mermaid-5-1791635467030 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#publish-mermaid-5-1791635467030 .icon-shape .label rect,#publish-mermaid-5-1791635467030 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-5-1791635467030 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#publish-mermaid-5-1791635467030 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#publish-mermaid-5-1791635467030 .node .neo-node{stroke:#9370DB;}#publish-mermaid-5-1791635467030 [data-look=\”neo\”].node rect,#publish-mermaid-5-1791635467030 [data-look=\”neo\”].cluster rect,#publish-mermaid-5-1791635467030 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-5-1791635467030 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-5-1791635467030 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-5-1791635467030 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-5-1791635467030 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-5-1791635467030 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-5-1791635467030 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-5-1791635467030 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-5-1791635467030 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-5-1791635467030 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}健康不健康
修复节点故障
检查节点健康
启动节点应用
继续修复
启动数据库实例
验证服务恢复
流程图展示了节点恢复的步骤,从修复故障到验证服务恢复,确保节点完全恢复正常运行。
四、常见故障处理:节点间通信故障
4.1 通信故障检测
节点间通信故障会导致集群分裂(split-brain),使用crsctl check cluster命令检查集群通信状态。通信故障通常表现为节点间无法互相通信或心跳丢失。
#publish-mermaid-6-1791635467071{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-6-1791635467071 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-6-1791635467071 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-6-1791635467071 .error-icon{fill:#552222;}#publish-mermaid-6-1791635467071 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-6-1791635467071 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-6-1791635467071 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-6-1791635467071 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-6-1791635467071 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-6-1791635467071 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-6-1791635467071 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-6-1791635467071 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-6-1791635467071 .marker.cross{stroke:#333333;}#publish-mermaid-6-1791635467071 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-6-1791635467071 p{margin:0;}#publish-mermaid-6-1791635467071 .entityBox{fill:#ECECFF;stroke:#9370DB;}#publish-mermaid-6-1791635467071 .relationshipLabelBox{fill:hsl(80, 100%, 96.2745098039%);opacity:0.7;background-color:hsl(80, 100%, 96.2745098039%);}#publish-mermaid-6-1791635467071 .relationshipLabelBox rect{opacity:0.5;}#publish-mermaid-6-1791635467071 .labelBkg{background-color:rgba(248.6666666666, 255, 235.9999999999, 0.5);}#publish-mermaid-6-1791635467071 .edgeLabel{background-color:rgba(232,232,232, 0.8);}#publish-mermaid-6-1791635467071 .edgeLabel .label rect{fill:rgba(232,232,232, 0.8);}#publish-mermaid-6-1791635467071 .edgeLabel .label text{fill:#333;}#publish-mermaid-6-1791635467071 .edgeLabel .label{fill:#9370DB;font-size:14px;}#publish-mermaid-6-1791635467071 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#publish-mermaid-6-1791635467071 .edge-pattern-dashed{stroke-dasharray:8,8;}#publish-mermaid-6-1791635467071 .node rect,#publish-mermaid-6-1791635467071 .node circle,#publish-mermaid-6-1791635467071 .node ellipse,#publish-mermaid-6-1791635467071 .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#publish-mermaid-6-1791635467071 .relationshipLine{stroke:#333333;stroke-width:1px;fill:none;}#publish-mermaid-6-1791635467071 .marker{fill:none!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-6-1791635467071 [data-look=neo].labelBkg{background-color:rgba(248.6666666666, 255, 235.9999999999, 0.5);}#publish-mermaid-6-1791635467071 .node .neo-node{stroke:#9370DB;}#publish-mermaid-6-1791635467071 [data-look=\”neo\”].node rect,#publish-mermaid-6-1791635467071 [data-look=\”neo\”].cluster rect,#publish-mermaid-6-1791635467071 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-6-1791635467071 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-6-1791635467071 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-6-1791635467071 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-6-1791635467071 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-6-1791635467071 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-6-1791635467071 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-6-1791635467071 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-6-1791635467071 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-6-1791635467071 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}发送心跳发送心跳发送心跳依赖网络
节点1
心跳
节点2
节点3
网络
ER图展示了节点间通过心跳依赖网络进行通信的关系,当网络故障时会导致通信中断。
4.2 通信故障处理
处理通信故障需要检查网络配置,确保所有节点都能互相通信。使用ping命令测试节点间网络连通性,检查防火墙规则和网络接口状态。
#publish-mermaid-7-1791635467118{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-7-1791635467118 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-7-1791635467118 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-7-1791635467118 .error-icon{fill:#552222;}#publish-mermaid-7-1791635467118 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-7-1791635467118 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-7-1791635467118 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-7-1791635467118 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-7-1791635467118 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-7-1791635467118 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-7-1791635467118 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-7-1791635467118 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-7-1791635467118 .marker.cross{stroke:#333333;}#publish-mermaid-7-1791635467118 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-7-1791635467118 p{margin:0;}#publish-mermaid-7-1791635467118 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#publish-mermaid-7-1791635467118 .cluster-label text{fill:#333;}#publish-mermaid-7-1791635467118 .cluster-label span{color:#333;}#publish-mermaid-7-1791635467118 .cluster-label span p{background-color:transparent;}#publish-mermaid-7-1791635467118 .label text,#publish-mermaid-7-1791635467118 span{fill:#333;color:#333;}#publish-mermaid-7-1791635467118 .node rect,#publish-mermaid-7-1791635467118 .node circle,#publish-mermaid-7-1791635467118 .node ellipse,#publish-mermaid-7-1791635467118 .node polygon,#publish-mermaid-7-1791635467118 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#publish-mermaid-7-1791635467118 .rough-node .label text,#publish-mermaid-7-1791635467118 .node .label text,#publish-mermaid-7-1791635467118 .image-shape .label,#publish-mermaid-7-1791635467118 .icon-shape .label{text-anchor:middle;}#publish-mermaid-7-1791635467118 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#publish-mermaid-7-1791635467118 .rough-node .label,#publish-mermaid-7-1791635467118 .node .label,#publish-mermaid-7-1791635467118 .image-shape .label,#publish-mermaid-7-1791635467118 .icon-shape .label{text-align:center;}#publish-mermaid-7-1791635467118 .node.clickable{cursor:pointer;}#publish-mermaid-7-1791635467118 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#publish-mermaid-7-1791635467118 .arrowheadPath{fill:#333333;}#publish-mermaid-7-1791635467118 .edgePath .path{stroke:#333333;stroke-width:1px;}#publish-mermaid-7-1791635467118 .flowchart-link{stroke:#333333;fill:none;}#publish-mermaid-7-1791635467118 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-7-1791635467118 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#publish-mermaid-7-1791635467118 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-7-1791635467118 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#publish-mermaid-7-1791635467118 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#publish-mermaid-7-1791635467118 .cluster text{fill:#333;}#publish-mermaid-7-1791635467118 .cluster span{color:#333;}#publish-mermaid-7-1791635467118 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#publish-mermaid-7-1791635467118 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#publish-mermaid-7-1791635467118 rect.text{fill:none;stroke-width:0;}#publish-mermaid-7-1791635467118 .icon-shape,#publish-mermaid-7-1791635467118 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-7-1791635467118 .icon-shape p,#publish-mermaid-7-1791635467118 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#publish-mermaid-7-1791635467118 .icon-shape .label rect,#publish-mermaid-7-1791635467118 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-7-1791635467118 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#publish-mermaid-7-1791635467118 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#publish-mermaid-7-1791635467118 .node .neo-node{stroke:#9370DB;}#publish-mermaid-7-1791635467118 [data-look=\”neo\”].node rect,#publish-mermaid-7-1791635467118 [data-look=\”neo\”].cluster rect,#publish-mermaid-7-1791635467118 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-7-1791635467118 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-7-1791635467118 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-7-1791635467118 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-7-1791635467118 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-7-1791635467118 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-7-1791635467118 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-7-1791635467118 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-7-1791635467118 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-7-1791635467118 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}通不通
检测通信故障
网络连通性测试
检查防火墙
修复网络配置
防火墙规则正确
调整防火墙规则
验证通信恢复
流程图展示了通信故障处理的完整流程,从检测到验证恢复,确保网络通信正常。
五、节点管理最佳实践
5.1 故障分布分析
根据历史故障数据,节点故障主要分为硬件故障、网络故障和软件故障三类,其中硬件故障占比最高。
#publish-mermaid-8-1791635467166{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-8-1791635467166 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-8-1791635467166 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-8-1791635467166 .error-icon{fill:#552222;}#publish-mermaid-8-1791635467166 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-8-1791635467166 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-8-1791635467166 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-8-1791635467166 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-8-1791635467166 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-8-1791635467166 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-8-1791635467166 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-8-1791635467166 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-8-1791635467166 .marker.cross{stroke:#333333;}#publish-mermaid-8-1791635467166 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-8-1791635467166 p{margin:0;}#publish-mermaid-8-1791635467166 .pieCircle{stroke:black;stroke-width:2px;opacity:0.7;}#publish-mermaid-8-1791635467166 .pieCircle.highlighted{scale:1.05;opacity:1;}#publish-mermaid-8-1791635467166 .pieCircle.highlightedOnHover:hover{transition-duration:250ms;scale:1.05;opacity:1;}#publish-mermaid-8-1791635467166 .pieOuterCircle{stroke:black;stroke-width:2px;fill:none;}#publish-mermaid-8-1791635467166 .pieTitleText{text-anchor:middle;font-size:25px;fill:black;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#publish-mermaid-8-1791635467166 .slice{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#333;font-size:17px;}#publish-mermaid-8-1791635467166 .legend text{fill:black;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:17px;}#publish-mermaid-8-1791635467166 .node .neo-node{stroke:#9370DB;}#publish-mermaid-8-1791635467166 [data-look=\”neo\”].node rect,#publish-mermaid-8-1791635467166 [data-look=\”neo\”].cluster rect,#publish-mermaid-8-1791635467166 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-8-1791635467166 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-8-1791635467166 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-8-1791635467166 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-8-1791635467166 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-8-1791635467166 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-8-1791635467166 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-8-1791635467166 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-8-1791635467166 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-8-1791635467166 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}45%30%25%RAC节点故障分布硬件故障网络故障软件故障
饼图展示了RAC节点故障的分布情况,帮助运维人员重点关注高发故障类型。
5.2 节点管理建议
#publish-mermaid-9-1791635467175{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#publish-mermaid-9-1791635467175 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#publish-mermaid-9-1791635467175 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#publish-mermaid-9-1791635467175 .error-icon{fill:#552222;}#publish-mermaid-9-1791635467175 .error-text{fill:#552222;stroke:#552222;}#publish-mermaid-9-1791635467175 .edge-thickness-normal{stroke-width:1px;}#publish-mermaid-9-1791635467175 .edge-thickness-thick{stroke-width:3.5px;}#publish-mermaid-9-1791635467175 .edge-pattern-solid{stroke-dasharray:0;}#publish-mermaid-9-1791635467175 .edge-thickness-invisible{stroke-width:0;fill:none;}#publish-mermaid-9-1791635467175 .edge-pattern-dashed{stroke-dasharray:3;}#publish-mermaid-9-1791635467175 .edge-pattern-dotted{stroke-dasharray:2;}#publish-mermaid-9-1791635467175 .marker{fill:#333333;stroke:#333333;}#publish-mermaid-9-1791635467175 .marker.cross{stroke:#333333;}#publish-mermaid-9-1791635467175 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#publish-mermaid-9-1791635467175 p{margin:0;}#publish-mermaid-9-1791635467175 g.classGroup text{fill:#9370DB;stroke:none;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:10px;}#publish-mermaid-9-1791635467175 g.classGroup text .title{font-weight:bolder;}#publish-mermaid-9-1791635467175 .cluster-label text{fill:#333;}#publish-mermaid-9-1791635467175 .cluster-label span{color:#333;}#publish-mermaid-9-1791635467175 .cluster-label span p{background-color:transparent;}#publish-mermaid-9-1791635467175 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#publish-mermaid-9-1791635467175 .cluster text{fill:#333;}#publish-mermaid-9-1791635467175 .cluster span{color:#333;}#publish-mermaid-9-1791635467175 .nodeLabel,#publish-mermaid-9-1791635467175 .edgeLabel{color:#131300;}#publish-mermaid-9-1791635467175 .noteLabel .nodeLabel,#publish-mermaid-9-1791635467175 .noteLabel .edgeLabel{color:black;}#publish-mermaid-9-1791635467175 .edgeLabel .label rect{fill:#ECECFF;}#publish-mermaid-9-1791635467175 .label text{fill:#131300;}#publish-mermaid-9-1791635467175 .labelBkg{background:#ECECFF;}#publish-mermaid-9-1791635467175 .edgeLabel .label span{background:#ECECFF;}#publish-mermaid-9-1791635467175 .classTitle{font-weight:bolder;}#publish-mermaid-9-1791635467175 .node rect,#publish-mermaid-9-1791635467175 .node circle,#publish-mermaid-9-1791635467175 .node ellipse,#publish-mermaid-9-1791635467175 .node polygon,#publish-mermaid-9-1791635467175 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1;}#publish-mermaid-9-1791635467175 .divider{stroke:#9370DB;stroke-width:1;}#publish-mermaid-9-1791635467175 g.clickable{cursor:pointer;}#publish-mermaid-9-1791635467175 g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#publish-mermaid-9-1791635467175 g.classGroup line{stroke:#9370DB;stroke-width:1;}#publish-mermaid-9-1791635467175 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#publish-mermaid-9-1791635467175 .classLabel .label{fill:#9370DB;font-size:10px;}#publish-mermaid-9-1791635467175 .relation{stroke:#333333;stroke-width:1;fill:none;}#publish-mermaid-9-1791635467175 .dashed-line{stroke-dasharray:3;}#publish-mermaid-9-1791635467175 .dotted-line{stroke-dasharray:1 2;}#publish-mermaid-9-1791635467175 [id$=\”-compositionStart\”],#publish-mermaid-9-1791635467175 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 [id$=\”-compositionEnd\”],#publish-mermaid-9-1791635467175 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 [id$=\”-dependencyStart\”],#publish-mermaid-9-1791635467175 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 [id$=\”-dependencyEnd\”],#publish-mermaid-9-1791635467175 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 [id$=\”-extensionStart\”],#publish-mermaid-9-1791635467175 .extension{fill:transparent!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 [id$=\”-extensionEnd\”],#publish-mermaid-9-1791635467175 .extension{fill:transparent!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 [id$=\”-aggregationStart\”],#publish-mermaid-9-1791635467175 .aggregation{fill:transparent!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 [id$=\”-aggregationEnd\”],#publish-mermaid-9-1791635467175 .aggregation{fill:transparent!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 [id$=\”-lollipopStart\”],#publish-mermaid-9-1791635467175 .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 [id$=\”-lollipopEnd\”],#publish-mermaid-9-1791635467175 .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#publish-mermaid-9-1791635467175 .edgeTerminals{font-size:11px;line-height:initial;}#publish-mermaid-9-1791635467175 .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#publish-mermaid-9-1791635467175 .edgeLabel[data-look=\”neo\”]{background-color:rgba(232,232,232, 0.8);text-align:center;}#publish-mermaid-9-1791635467175 .edgeLabel[data-look=\”neo\”] p{background-color:rgba(232,232,232, 0.8);}#publish-mermaid-9-1791635467175 .edgeLabel[data-look=\”neo\”] rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#publish-mermaid-9-1791635467175 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#publish-mermaid-9-1791635467175 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#publish-mermaid-9-1791635467175 .node .neo-node{stroke:#9370DB;}#publish-mermaid-9-1791635467175 [data-look=\”neo\”].node rect,#publish-mermaid-9-1791635467175 [data-look=\”neo\”].cluster rect,#publish-mermaid-9-1791635467175 [data-look=\”neo\”].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-9-1791635467175 [data-look=\”neo\”].swimlane.cluster rect{filter:none;}#publish-mermaid-9-1791635467175 [data-look=\”neo\”].node path{stroke:#9370DB;stroke-width:1px;}#publish-mermaid-9-1791635467175 [data-look=\”neo\”].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-9-1791635467175 [data-look=\”neo\”].node .neo-line path{stroke:#9370DB;filter:none;}#publish-mermaid-9-1791635467175 [data-look=\”neo\”].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-9-1791635467175 [data-look=\”neo\”].node circle .state-start{fill:#000000;}#publish-mermaid-9-1791635467175 [data-look=\”neo\”].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-9-1791635467175 [data-look=\”neo\”].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#publish-mermaid-9-1791635467175 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}关联
节点管理
+监控节点状态()
+处理节点故障()
+执行节点切换()
+记录操作日志()
故障处理
+检测故障类型()
+执行恢复操作()
+验证恢复结果()
类图展示了节点管理和故障处理的关系,节点管理类包含监控、故障处理和切换等方法,故障处理类负责具体的故障处理逻辑。
六、最小示例与注意事项
6.1 最小示例:节点状态检查
# 检查所有节点状态
crsctl check crs
# 检查特定节点应用状态
srvctl status nodeapps -n racnode1
# 检查数据库实例状态
srvctl status database -d orcl

