-
ASM 실습 02: 인스턴스 구조 & 동적 성능 뷰DB 스터디/02_ASM 2026. 3. 25. 19:35
실습 스크립트 전체 보기: https://github.com/nsylove97/Seongryeol-OracleDB-Portfolio
실습 환경
OS Oracle Linux 7.9 (VMware Virtual Machine) DB Oracle Database 19c (Grid Infrastructure + DB) 접속 툴 SQL*Plus, MobaXterm(SSH) Grid ORACLE_HOME /u01/app/19.3.0/gridhome DB ORACLE_HOME /u01/app/oracle/product/19.3.0/dbhome
목차
1. ASM 인스턴스 구조
2. ASM 권한 종류
3. 시작·종료 순서
4. 동적 성능 뷰 실습
5. ASMCMD 실습
6. 스트라이핑 & 미러링 & Failure Group
1. ASM 인스턴스 구조
- ASM(Automatic Storage Management): OS 파일 시스템 대신 오라클이 직접 제공하는 전용 스토리지 계층
- DB 인스턴스가 직접 디스크에서 데이터를 읽고, ASM은 파일의 위치(메타데이터) 만 관리
구분 일반 DB ASM 사용 데이터 접근 흐름 SQL → DB 인스턴스 →OS 파일 시스템 → 디스크 SQL → DB 인스턴스 → ASM(위치 조회) → 디스크 직접 읽기 실제 I/O 주체 DB 인스턴스 DB 인스턴스 (ASM은 경로만 제공) SGA / PGA
구성 요소 ASM 인스턴스 일반 DB 인스턴스 SGA O (메타데이터·파일 관리에 필요) O PGA X (SQL 처리·사용자 세션 없음) O 백그라운드 프로세스
프로세스 역할 RBAL 디스크 파악 및 리밸런스 작업 지시 ARBn 실제 데이터 이동 수행 (n: 병렬 슬롯 번호) GMON 디스크 상태 지속 체크 MARK 오래된·오프라인 Extent 정리 Onnn / PZ9n RAC 환경에서 인스턴스 간 데이터 조회 시 사용 -- ASM 백그라운드 프로세스 조회 ps -ef | grep -E "rbal|arbn|gmon|mark|onnn|pz9n" | grep -v grep
ASM 백그라운드 프로세스 조회
2. ASM 권한 종류
권한 설명 SYSASM ASM 전체 관리 (최고 관리자 권한, 기본) SYSDBA ASM에 저장된 데이터에 접근 가능 SYSOPER ASM 인스턴스의 시작·정지 제한 권한 -- SYSASM으로 ASM 인스턴스 접속 (grid 계정) sqlplus / AS SYSASM -- SYSDBA로 접속 (oracle 계정에서 ASM 파일 접근 시) sqlplus / AS SYSDBA
oracle 계정에서 sysdba로 접속 및 grid 계정에서 sysasm으로 접속
3. 시작·종료 순서
기본 원칙
동작 순서 시작 (STARTUP) ASM 인스턴스 먼저 → DB 인스턴스 종료 (SHUTDOWN) DB 인스턴스 먼저 → ASM 인스턴스 - DB 인스턴스가 ASM 위에 올라가는 구조
- ASM이 먼저 기동되어야 DB가 데이터파일 위치 조회 가능
crsctl — CRS 데몬 레벨 제어
-- Grid Infrastructure 전체 스택 종료 (root 계정) crsctl stop has -- Grid Infrastructure 전체 스택 시작 (root 계정) crsctl start has -- CRS 상태 확인 crsctl stat res -t
Grid Infrastructure 전체 종료 
다시 시작 후 CRS 상태 확인 srvctl — 서비스 단위 제어
-- ASM 인스턴스 상태 확인 srvctl status asm -- DB 인스턴스 상태 확인 srvctl status database -d orcl -- DB 인스턴스 종료 (oracle 계정) srvctl stop database -d orcl -- DB 인스턴스 시작 (oracle 계정) srvctl start database -d orcl
ASM 및 DB 인스턴스 상태 확인 후 DB 인스턴스 종료, 이후 다시 시작 후 상태 확인
4. 동적 성능 뷰 실습
4-1. v$asm_diskgroup — 디스크 그룹 상태 및 용량 확인
-- grid 계정 (ORACLE_SID=+ASM) CONN / AS SYSASM -- 현재 마운트된 디스크 그룹 목록 확인 SELECT name, state, type, total_mb, free_mb, ROUND((1 - free_mb/total_mb) * 100, 1) AS used_pct FROM v$asm_diskgroup ORDER BY name;
v$asm_diskgroup 조회 결과 주요 컬럼 설명 STATE MOUNTED(정상), DISMOUNTED, CONNECTED 등 TYPE EXTERN / NORMAL / HIGH (미러링 방식) TOTAL_MB 디스크 그룹 전체 용량 FREE_MB 사용 가능한 공간 4-2. v$asm_disk — 개별 디스크 상태 및 경로 확인
-- ASM에 등록된 개별 디스크 하나하나의 상태 조회 SELECT group_number, disk_number, name, state, path, total_mb, free_mb, label FROM v$asm_disk ORDER BY group_number, disk_number;
v$asm_disk 뷰 조회 결과 4-3. v$asm_file — ASM 파일 목록 확인
-- 어떤 파일이 어떤 그룹에 저장되어 있는지 확인 -- (SYSDBA로 접속한 경우에도 조회 가능) SELECT group_number, file_number, type, bytes, space, redundancy FROM v$asm_file ORDER BY group_number, file_number FETCH FIRST 20 ROWS ONLY;
v$asm_file 조회 결과 - v$asm_file은 파일의 논리적 정보(타입, 크기, 중복도) 표시
- 실제 익스텐트 위치는 내부 익스텐트 맵으로 관리
5. ASMCMD 실습
- ASMCMD: ASM 디스크 그룹과 파일을 터미널에서 직접 관리하기 위한 전용 CLI 도구
-- grid 계정에서 ASMCMD 접속 asmcmd
grid 계정에서 ASMCMD 접속 5-1. lsdg — 디스크 그룹 상세 조회
ASMCMD> lsdg
lsdg 조회 결과 칼럼 설명 Rebal 리밸런스 진행 중 여부 (N=정상) AU Allocation Unit 크기 (bytes) Req_mir_free_MB 미러링 복구를 위해 확보해야 할 여유 공간 Usable_file_MB 실제로 파일에 사용 가능한 공간 Voting_files RAC Voting Disk 포함 여부 5-2. lsdsk — 개별 디스크 조회
ASMCMD> lsdsk
lsdsk 조회 결과 -- 상세 옵션 (그룹별 디스크 상태 포함) ASMCMD> lsdsk -k
lsdsk -k 조회 결과 5-3. du — 사용 중인 공간 확인
-- +DATA 디스크 그룹으로 이동 후 사용 공간 확인 ASMCMD> cd +DATA ASMCMD> du
디스크 그룹 +DATA가 사용 중인 공간과 미러링 공간 5-4. ls — ASM 파일 목록 확인
-- +DATA/ORCL/DATAFILE 경로로 이동 ASMCMD> cd +DATA/ORCL/DATAFILE ASMCMD> ls -l
orcl DB의 ASM 파일 목록 확인
6. 스트라이핑 & 미러링 & Failure Group
AU (Allocation Unit)
항목 내용 정의 ASM 디스크 공간을 일정 크기로 나눈 기본 단위 기본값 1MB 설정 가능 크기 1 / 2 / 4 / 8 / 16 / 32 / 64 MB (디스크 그룹 생성 시 지정) 관계 AU들이 모여 ASM Extent 구성 스트라이핑 (Striping)
- 하나의 파일을 AU(Extent) 단위로 쪼개 여러 디스크에 나눠 저장하는 방식
- 같은 디스크 그룹 내 디스크들에 고르게 분산
효과 설명 부하 분산 (Load Balancing) 파일을 여러 디스크에 나눠 고르게 저장 Latency 감소 여러 디스크에서 동시에 읽으므로 단일 디스크보다 빠름 미러링 (Mirroring)
Redundancy 방식 복사본 수 필요 Failure Group 수 용도 EXTERNAL 미러링 없음 (1개) 1개 외부 스토리지에 하드웨어 RAID가 있는 경우 NORMAL 2개 (양방향) 2개 이상 일반적인 권장 설정 HIGH 3개 (삼방향) 3개 이상 최고 가용성 요구 환경 Failure Group
- 미러링된 복사본이 같은 장애 도메인에 함께 저장되지 않도록 강제하는 논리적 그룹
- Failure Group 1과 Failure Group 2는 서로 다른 물리 디스크(또는 컨트롤러)에 배치
[현재 환경 구성 — +DATA, NORMAL Redundancy] Failure Group DATA_0000 Failure Group DATA_0001 ┌──────────┐ ┌──────────┐ │ DATA1 │ │ DATA2 │ │ DATA3 │ │ DATA4 │ └──────────┘ └──────────┘ ↑ 원본 Extent ↑ 미러 Extent- NORMAL Redundancy에서는 디스크 1개가 고장 나도, 다른 Failure Group의 복사본으로 서비스가 지속됨
- +OCR이 3개 디스크 쓰는 것도 같은 원리 — RAC Voting Disk는 홀수 Failure Group(3개) 필요
실습 핵심 요약
주제 핵심 포인트 ASM 인스턴스 SGA는 있음, PGA는 없음 — SQL 처리·사용자 세션이 없어 PGA 불필요 데이터 흐름 DB 인스턴스가 ASM에 파일 위치를 물어보고, DB 인스턴스가 직접 디스크에서 읽음 백그라운드 프로세스 RBAL(지시) / ARBn(실행) / GMON(감시) / MARK(정리) ASM 권한 SYSASM(최고) / SYSDBA(데이터 접근) / SYSOPER(시작·정지) 시작·종료 순서 시작: ASM 먼저 → DB / 종료: DB 먼저 → ASM crsctl CRS 데몬 레벨 제어 (start/stop has) srvctl 서비스 단위 제어 (start/stop database -d orcl) v$asm_diskgroup 디스크 그룹 상태·용량 확인 (STATE, TYPE, FREE_MB) v$asm_disk 개별 디스크 상태·경로 확인 (STATE, PATH) v$asm_file 파일 타입·중복도 확인 (TYPE, REDUNDANCY) lsdg 디스크 그룹 상세 조회 (Rebal 여부, Usable_file_MB) lsdsk 개별 디스크 경로 및 Failure Group 확인 du 실제 사용 공간 및 미러링 소비 공간 확인 AU ASM 기본 저장 단위 (기본 1MB, 디스크 그룹 생성 시 결정) 스트라이핑 파일을 여러 디스크에 분산 → 부하 분산 + 지연 최소화 미러링 EXTERNAL(없음) / NORMAL(2중) / HIGH(3중) Failure Group 미러링 복사본이 같은 장애 도메인에 놓이지 않도록 격리하는 논리 그룹
'DB 스터디 > 02_ASM' 카테고리의 다른 글
ASM 실습 03: 초기화 파라미터 & 디스크 그룹 관리 (0) 2026.03.25 ASM 실습 01: ASM 설치 (RAC·DG 대비 포함) (0) 2026.03.25