본문 바로가기

ORACLE

ORACLE : RAC 환경에서의 CRS 관리

반응형

오라클 데이터베이스는 RAC (Real Application Cluster)라는 기술을 통해 여러 대의 서버를 하나의 데이터베이스로 구성하고, 고가용성과 확장성을 제공할 수 있습니다. RAC 환경에서는 Cluster Ready Services (CRS)라는 프로그램이 중요한 역할을 합니다. CRS는 RAC 클러스터의 구성 정보와 상태 정보를 관리하고, 클러스터 내의 서버와 데이터베이스, 리스너, VIP 등의 서비스를 모니터링하고, 장애가 발생하면 자동으로 복구하거나 재시작하는 기능을 수행합니다. 이 글에서는 오라클 데이터베이스 RAC 환경에서 CRS를 관리하는 방법에 대해 알아보겠습니다.

CRS의 구성 요소

CRS는 다음과 같은 구성 요소로 이루어져 있습니다.

  • OCR (Oracle Cluster Registry): RAC 클러스터의 구성 정보와 상태 정보를 저장하는 파일로, 클러스터 내의 모든 서버에서 접근할 수 있도록 공유 디스크에 위치합니다. OCR에는 클러스터의 이름, 버전, 노드 수, 노드 이름, VIP, 리스너, 데이터베이스, 인스턴스 등의 정보가 저장됩니다. OCR은 CRS가 클러스터를 관리하는 데 필요한 정보를 제공합니다.
  • Voting Disk: RAC 클러스터의 투표 디스크로, 클러스터 내의 서버들이 살아 있는지를 판단하는 데 사용됩니다. Voting Disk에는 각 서버의 심장박동 (heartbeat) 정보가 기록되며, CRS는 이 정보를 통해 서버의 상태를 확인합니다. Voting Disk는 고가용성을 위해 여러 개로 구성할 수 있으며, 공유 디스크에 위치합니다.
  • CRSD (Cluster Ready Services Daemon): CRS의 핵심 프로세스로, OCR에 등록된 서비스들을 관리하고 모니터링하는 역할을 합니다. CRSD는 서비스의 상태 변화를 감지하고, 이벤트를 생성하고, 장애가 발생하면 자동으로 복구하거나 재시작하는 기능을 수행합니다. CRSD는 root 계정으로 실행되며, 유닉스나 리눅스에서는 crsd.bin, 윈도우에서는 crsd.exe로 실행됩니다.
  • OCSSD (Oracle Cluster Synchronization Services Daemon): CRS의 동기화 프로세스로, 클러스터 내의 서버들이 OCR과 Voting Disk에 대한 접근 권한을 관리하고, 서버들 간의 심장박동을 주고받는 역할을 합니다. OCSSD는 oracle 계정으로 실행되며, 유닉스나 리눅스에서는 ocssd.bin, 윈도우에서는 ocssd.exe로 실행됩니다.
  • EVM (Event Volume Manager): CRS의 이벤트 관리 프로세스로, CRS가 생성하는 이벤트를 수집하고, 다른 CRS 프로세스나 외부 프로세스에게 전달하는 역할을 합니다. EVM은 oracle 계정으로 실행되며, 유닉스나 리눅스에서는 evmd.bin, 윈도우에서는 evmd.exe로 실행됩니다.

CRS의 관리 방법

CRS는 다음과 같은 방법으로 관리할 수 있습니다.

  • CRSCTL (Cluster Ready Services Control): CRS의 컨트롤 명령어로, CRS의 시작과 종료, 상태 확인, 파라미터 설정 등을 할 수 있습니다. CRSCTL은 root 계정이나 oracle 계정으로 실행할 수 있으며, 유닉스나 리눅스에서는 crsctl, 윈도우에서는 crsctl.exe로 실행됩니다. CRSCTL의 사용 예는 다음과 같습니다.
    • CRS 시작: crsctl start crs
    • CRS 종료: crsctl stop crs
    • CRS 상태 확인: crsctl check crs
    • CRS 파라미터 확인: crsctl get css misscount
    • CRS 파라미터 설정: crsctl set css misscount 60
  • SRVCTL (Server Control): RAC 클러스터의 서버와 데이터베이스, 인스턴스, 리스너, VIP 등의 서비스를 관리하는 명령어로, 서비스의 시작과 종료, 상태 확인, 구성 정보 확인 등을 할 수 있습니다. SRVCTL은 oracle 계정으로 실행할 수 있으며, 유닉스나 리눅스에서는 srvctl, 윈도우에서는 srvctl.exe로 실행됩니다. SRVCTL의 사용 예는 다음과 같습니다.
    • 데이터베이스 시작: srvctl start database -d orcl
    • 데이터베이스 종료: srvctl stop database -d orcl
    • 데이터베이스 상태 확인: srvctl status database -d orcl
    • 데이터베이스 구성 정보 확인: srvctl config database -d orcl
  • CRS 관리 화면: 웹 브라우저를 통해 CRS의 상태와 구성 정보를 확인하고, 서비스를 관리할 수 있는 화면입니다. CRS 관리 화면에 접속하려면, 웹 브라우저에서 http://<host>:<port>/em 를 입력하고, oracle 계정으로 로그인합니다. CRS 관리 화면에서는 다음과 같은 작업을 할 수 있습니다.
    • 클러스터의 구성 정보와 상태 정보를 확인할 수 있습니다.
    • 클러스터 내의 서버와 데이터베이스, 인스턴스, 리스너, VIP 등의 서비스를 시작하고, 종료하고, 상태를 확인할 수 있습니다.
    • OCR과 Voting Disk의 백업과 복구를 수행할 수 있습니다.
    • CRS의 파라미터를 확인하고, 수정할 수 있습니다.
crsctl status resource -t

 

//crsctl 파일 경로
/oracle/app/grid/product/12.2.0/grid_xxxxx/bin/

//CRS Autostart 설정 변경
crsctl config crs
[root@xxxxxxx bin]# ./crsctl config crs
CRS-4622: Oracle High Availability Services autostart is enabled.

crsctl disable crs
//crs 비활성화

crsctl enable crs
//crs 활성화

crsctl stop crs -f
//crs stop

crsctl start crs
//crs start

//CRS 로그
/oracle/app/base/diag/crs/XXX/crs/trace/alert.log

결론

CRS는 RAC 클러스터의 핵심 프로그램으로, 클러스터의 구성 정보와 상태 정보를 관리하고, 클러스터 내의 서버와 데이터베이스, 리스너, VIP 등의 서비스를 모니터링하고, 장애가 발생하면 자동으로 복구하거나 재시작하는 기능을 수행합니다. CRS를 관리하기 위해서는 CRSCTL, SRVCTL, CRS 관리 화면 등의 도구를 사용할 수 있습니다. CRS를 잘 관리하면, RAC 클러스터의 성능과 안정성을 향상시킬 수 있습니다.

반응형

'ORACLE' 카테고리의 다른 글

Oracle NONEDITIONABLE 옵션  (0) 2025.03.25
ORACLE : 백업 히스토리 확인하는 방법  (0) 2023.11.22