본문 바로가기

Oracle/Admin

[Oracle] crs 기동 (asm 권한 위주)

728x90

🧩 Oracle 19c + RAC 환경에서 crsctl start crs 시 ASM 기동 흐름


🧾 1. 명령어

crsctl start crs
  • 실행 주체: root
  • 설명: CRS(Cluster Ready Services)를 시작하는 명령어. RAC 노드마다 개별적으로 실행됨.
  • 대상 위치: $GRID_HOME/bin/crsctl

🧱 2. 기동 순서 (CRS → ASM 포함)

root가 crsctl 실행
   ↓
ohasd.bin 기동
   ↓
cssd, gpnpd, evmd 등 핵심 데몬 기동
   ↓
Voting Disk 확인
   ↓
ASM 관련 에이전트 기동 (oraagent, orarootagent)
   ↓
+ASM 인스턴스 기동 (oracle binary)
   ↓
디스크 그룹 마운트 (DATA, FRA 등)
   ↓
CRSD 기동 후 나머지 리소스(DB, Listener 등) 기동

🔧 3. 실행되는 bin 파일 목록

구성 요소실행 파일 경로설명
ohasd $GRID_HOME/bin/ohasd.bin 가장 먼저 시작되는 데몬
ocssd $GRID_HOME/bin/ocssd.bin Voting Disk를 사용한 노드 간 동기화
oraagent $GRID_HOME/bin/oraagent.bin ASM 등 리소스 기동/모니터링
orarootagent $GRID_HOME/bin/orarootagent.bin 루트 권한이 필요한 리소스 담당
oracle $GRID_HOME/bin/oracle ASM 인스턴스 자체 실행 (+ASM1, +ASM2 등 SID)
crsd $GRID_HOME/bin/crsd.bin 리소스(서비스, DB 등) 기동

GRID_HOME은 예: /u01/app/19.0.0/grid


💽 4. ASM 디스크 및 디스크 그룹

ASM 디스크 경로 예시

  • /dev/oracleasm/disks/* (oracleasm-lib 사용 시)
  • /dev/mapper/*, /dev/sd*, /dev/nvme* (UDEV으로 매핑 시)

디스크 그룹

  • 보통 DATA, FRA 등의 디스크 그룹 이름을 사용
  • ASM 인스턴스가 기동되며 디스크 그룹을 자동으로 마운트함

👤 5. 실행 주체 (사용자/프로세스)

실행 대상사용자설명
crsctl start crs root 시스템/클러스터 전체 시작
ohasd.bin, crsd.bin 등 root 루트 데몬
oraagent.bin, orarootagent.bin grid / root 리소스 감시 및 실행
ASM 인스턴스 (+ASM1) grid oracle 프로세스로 기동, SID는 +ASM1, +ASM2 형태
ASM 디스크 접근 grid UDEV 혹은 oracleasm 설정으로 grid가 접근 가능해야 함

🔍 참고 확인 명령어

ps -ef | grep asm
# ASM 인스턴스 기동 여부 확인

crsctl stat res -t
# 리소스 상태 및 ASM 리소스 확인

asmcmd lsdg
# 마운트된 디스크 그룹 정보 확인

ls -l /dev/oracleasm/disks/
# ASM 디스크 경로 확인 (oracleasm 사용 시)

ls -l /dev/mapper/
# UDEV 사용 시 디스크 매핑 확인

✅ 요약

항목내용
기동 명령 crsctl start crs (root 실행)
주요 순서 OHASD → CSSD → oraagent → ASM → CRSD
실행 파일 ohasd.bin, ocssd.bin, oraagent.bin, oracle 등
사용자 root (초기 데몬), grid (ASM 인스턴스)
디스크 /dev/oracleasm/disks/*, /dev/mapper/* 등

 


📋 예시 1: crsctl stat res -t 출력 예시

이 명령은 Cluster Resource 상태를 트리 형태로 보여줍니다. ASM 관련 부분 중심으로 발췌한 예시입니다:

$ crsctl stat res -t

--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER        STATE_DETAILS
--------------------------------------------------------------------------------
ora.asm        ONLINE  ONLINE       node1
               ONLINE  ONLINE       node2
ora.LISTENER.lsnr
               ONLINE  ONLINE       node1
               ONLINE  ONLINE       node2
ora.DATA.dg     ONLINE  ONLINE      node1
                ONLINE  ONLINE      node2
ora.FRA.dg      ONLINE  ONLINE      node1
                ONLINE  ONLINE      node2
ora.cssd        ONLINE  ONLINE      node1
                ONLINE  ONLINE      node2
ora.crsd        ONLINE  ONLINE      node1
                ONLINE  ONLINE      node2
ora.evmd        ONLINE  ONLINE      node1
                ONLINE  ONLINE      node2
ora.node1.vip   ONLINE  ONLINE      node1
ora.node2.vip   ONLINE  ONLINE      node2
...

설명

  • ora.asm : ASM 인스턴스 상태 (노드별로 ONLINE 여부)
  • ora.DATA.dg, ora.FRA.dg: ASM 디스크 그룹 상태
  • ora.LISTENER.lsnr: 리스너 상태
  • ora.nodeX.vip: 가상 IP 상태

상태가 ONLINE이면 해당 리소스가 정상적으로 기동됨을 의미합니다.


🧾 예시 2: ps -ef | grep asm 출력 예시

$ ps -ef | grep asm
grid     12345     1  0 10:10 ?        00:00:00 asm_pmon_+ASM1
grid     12346     1  0 10:10 ?        00:00:00 asm_vktm_+ASM1
grid     12347     1  0 10:10 ?        00:00:00 asm_diag_+ASM1
grid     12348     1  0 10:10 ?        00:00:00 asm_dia0_+ASM1
grid     12349     1  0 10:10 ?        00:00:00 asm_dbw0_+ASM1
grid     12350     1  0 10:10 ?        00:00:00 asm_lgwr_+ASM1
grid     12351     1  0 10:10 ?        00:00:00 asm_ckpt_+ASM1
grid     12352     1  0 10:10 ?        00:00:00 asm_smon_+ASM1
grid     12353     1  0 10:10 ?        00:00:00 asm_rbal_+ASM1
grid     12354     1  0 10:10 ?        00:00:00 asm_gen0_+ASM1
...

설명

  • 프로세스 명: asm_<process>_+ASM1 형태
  • +ASM1: 노드 1의 ASM 인스턴스 이름
  • 주요 백그라운드 프로세스:
    • asm_pmon, asm_smon, asm_ckpt 등은 일반 Oracle 인스턴스와 유사
    • asm_rbal, asm_gen0: ASM 전용 프로세스

 

🔧 1. 리소스 기동 정책

 

리소스(예: DB, Listener, ASM 등)는 Oracle Clusterware에서 자동 기동 여부를 다음 속성으로 관리합니다:

 

확인 방법 

 

crsctl status resource -p 

 

  • AUTO_START: CRS 기동 시 리소스를 자동으로 기동할지 여부
    • always : 항상 자동 기동
    • restore : 이전 상태 복원
    • never : 수동으로만 기동

📌 2. 설정 확인 방법

 
crsctl status resource ora.orcl.db -p | grep AUTO_START
  • 예시 출력: AUTO_START=restore

✍️ 3. 설정 변경 방법

 
crsctl modify resource <resource_name> -attr "AUTO_START=<값>"

예시

  1. DB 인스턴스를 항상 자동으로 기동하도록 설정:
 
crsctl modify resource ora.orcl.db -attr "AUTO_START=always"
  1. 리스너 자동 기동 끄기:
 
crsctl modify resource ora.LISTENER.lsnr -attr "AUTO_START=never"
  1. 변경 후 반영 여부 확인:
 
crsctl status resource ora.orcl.db -p | grep AUTO_START

🛠️ 4. 기타 관련 속성

  • ENABLED: 해당 리소스를 CRS가 관리 대상으로 할지 여부
    • ENABLED=1 → CRS에서 관리함
    • ENABLED=0 → CRS에서 관리하지 않음
    • 변경 방법:
    • bash
      복사편집
      crsctl modify resource ora.orcl.db -attr "ENABLED=0"
  • TARGET: 대상 상태 (기동 시도 여부)
    • ONLINE, OFFLINE 등
    • 보통 crsctl start/stop resource 명령으로 수동 제어

✅ 실무 팁

상황설정 예시
PROD 환경에서 무조건 자동 기동 AUTO_START=always
테스트 환경, 수동 기동 선호 AUTO_START=never
재기동 시 이전 상태 그대로 복구 AUTO_START=restore (기본값)

 

728x90
반응형

'Oracle > Admin' 카테고리의 다른 글

[Oracle] TNS-12637, TNS-12170, ORA-609  (0) 2025.04.28
[Oracle] oracleasm, udev  (0) 2025.04.09
[Oracle] Clusterware(CRS) not coming up  (0) 2025.04.03
[Oracle] 라이선스 정책 정리  (1) 2025.02.03
[Oracle] view 데이터 보존 기간  (0) 2025.02.03