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 등) 기동
↓
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 사용 시 디스크 매핑 확인
# 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
...
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=<값>"
예시
- DB 인스턴스를 항상 자동으로 기동하도록 설정:
crsctl modify resource ora.orcl.db -attr "AUTO_START=always"
- 리스너 자동 기동 끄기:
crsctl modify resource ora.LISTENER.lsnr -attr "AUTO_START=never"
- 변경 후 반영 여부 확인:
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 |