ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 미러링 복사본이 같은 장애 도메인에 놓이지 않도록 격리하는 논리 그룹

     

Designed by Tistory.