IT기술/Oracle

02 CRS 설명 (5/5)

dobbby 2021. 6. 18. 11:46
반응형

Installation

CRS는 $ORACLE_HOME과는 별도의 경로에 $ORA_CRS_HOME이라는 환경 변수를 설정 후, 이 directory에 install합니다.

Install과정의 마지막 부분에 root.sh shell을 실행하도록 message가 나타납니다. 

이 root.sh는 inittab file에 crs process들이 booting시 startup되도록 inittab에 관련 정보를 기록합니다.

이 inittab들 보면 crs는 root권한으로 evm은 oracle권한으로 기동되며, process fail시 자동으로 재기동됩니다. 

 

Css는 oracle권한으로 기동되며, fatal mode로 기동되므로 process fail시 os reboot이 됩니다.

Booting시 실행되는 script는 init.crsd, init.cssd, init.evmd 이 세개가 실행되어 crs가 기동되게 됩니다. 

이 process들은 $ORA_CRS_HOME/<process명>/log directory에 각각의 log를 관리합니다. 

따라서 각 process에 이상 발생시 우선적으로 이 log directory를 참조 하시기 바랍니다.

Install시 root.sh가 모든 node에서 실행되어야 합니다. 만약 정상적으로 실행되지 않은 경우라면, 문제발생시 원인을 찾기 힘들게 됩니다.

 

 

 

Starting CRS

CRS 가 start 되는 과정을 다시 한번 review 해보겠습니다.

Init.crsd, init.evmd, init.cssd 는 init.crs 에 의해 call 이 되어, manual 하게 start 될 수 있습니다.

‘Init.crs start’ 명령이 발생하면, 먼저 cssd 를 start 하여 cluster 를 형성하게 되고, 이후 evm 이 start 됩니다. 

마지막으로 crsd 가 start 되어 crs 가 모두 기동됩니다.

Css 의 주요 thread 는 voting disk polling thread 와 network heartbeat thread입니다. 

Disk polling thread 는 매 초마다 voting disk 를 read 합니다. 

Heartbeat thread 도 또한 매초마다 작업합니다. 

Css 는 이외에 timer thread, 기타 관리를 위한 thread 등이 있습니다.

Css 는 startup 하면서 OCR 과 voting disk 를 읽어 cluster node 들을 확인합니다. 

이 단계에서 OCR이나 Voting disk 를 read 할 수 없는 상황이 되면 start 되지 못합니다. 

이후 evm 이 start 됩니다. 

CRSD 가 start 되면서 OCR data 를 cache 하기 위해 OCR cache thread 를 기동합니다. 

OCR cache 는 node 간에 master-slave 관계를 갖게 되는데, 가장 먼저 booting 된 node 가 master 가 되고, 

OCR disk 에 대한 write 는 이 master 에 의해서만 이루어집니다. 

이후 변경된 data 의 전파도 이 master crs 가 하게 됩니다.

Crsd 는 ocr 을 읽어서 모든 resource 들을 파악하고, 이들간의 dependency 도 확인합니다. 

이후 racgwrap 을 call 하여 각각의 resource 들을 start합니다. 

Racgwrap 은 racgmail 을 call 하면서 argument 로써 resource name 과 start 를 넘겨줍니다. 

각각의 resource 의 health check 를 하기 위해 매 초마다 sga의 특정 영역을 polling 합니다.

이 단계를 마치게 되면 모든 crs daemon들과 nodeapps, database, instance등의 resource가 모든 node에서 기동된 상태가 됩니다.

 

 

 

 

Diagnostics

다음은 문제 초기단계에서 볼 수 있는 trace file들을 확인해보겠습니다.

Crs, css, evm은 Oracle 10g R1 의 경우는 $ORA_CRS_HOME directory 밑에 process 명 아래에 log directory에 해당 log가 있습니다.

우선적으로 봐야 할 log file 은 이 log file 들입니다.

Css 의 경우는 interconnect 의 networking 이 안 되는 경우도 있으므로, css 의 network trace file인

$ORA_CRS_HOME/css/log/ocsns*.log 가 필요할 수도 있습니다. 

그리고 network configuration 을 파악하기 위해 hosts, netstat 결과도 확인이 필요합니다.

 

Emvd의 log는 각각 다음과 같습니다.

EVM daemon log 는 $ORA_CRS_HOME/evm/init/<hostname>.log 

EVM event logger log 는 $ORA_CRS_HOME/evm/log/<hostname>_evmdaemon.log 

Oprocd 가 있는 경우는 $ORA_CRS_HOME/log에oprocd log file 이 있습니다.

Ocr의 이상 시는 먼저 ocr 의 위치를 지정하고 있는 ocr.loc file을 확인하세요. 

이 file은 linux 의 경우는 /etc/oracle, 기타 unix 는 /var/opt/oracle 에 위치합니다. 

Ocr 내부의 data를 확인하기 위해 ocrdump 명령을 사용할 수 있습니다. 

별도의 이름을 주지 않은 경우 OCRDUMP 라는 file명으로 생성됩니다.

공통적으로 OS system log를 확인하여, network error나 io error, 혹은 다른 message가 있는지 확인이 필요합니다.

CRS의 경우도 여러 형태의 문제가 발생할 수 있기 때문에 문제 유형별로 trace를 발생시킬 수 있습니다.

이 내용에 대해서는 iSeminar에서 언급하지는 않겠습니다. 

위의 기본적인log file들과 함께 Oracle Suppport Engineer와 함께 진행하시기 바랍니다.

반응형