데이터베이스 연구실.log

ASM과 디스크 그룹

ASM과 DB 인스턴스 및 Oracle Restart의 관계, ASMLib 디스크와 디스크 그룹 구성 및 상태 확인

ASM디스크 그룹+ASM+DATA+FRAOracle RestartGrid InfrastructureoracleasmASMLibasmcacrsctl stat res -tora.DATA.dg

#핵심 요약

ASM은 Oracle 데이터베이스 파일을 Linux 파일 시스템 대신 ASM 디스크 그룹에 저장하는 방식임
파일 경로가 /u01/.../system01.dbf 같은 파일 시스템 경로가 아니라 +DATA/ORCL/DATAFILE/... 같은 디스크 그룹 경로가 됨

실습 단일 서버 구성은 Grid Infrastructure(Oracle Restart와 ASM 인스턴스 +ASM) 위에 DB 인스턴스 하나와 CDB 하나를 두고, 디스크 그룹으로 +DATA와 회복 영역용 그룹을 씀

ASM과 멀티테넌트는 서로 종속되지 않음
ASM은 저장 방식이고 멀티테넌트는 데이터베이스 내부 구조임

실습에서는 디스크 그룹이 Grid의 리소스(ora.DATA.dg 등)로 등록되어 crsctl stat res -t에서 ONLINE으로 보이는지 확인했음

#개념과 동작 원리

개념도개념 도식조회만 함
Linux 서버
├─ Grid Infrastructure
│  ├─ Oracle Restart
│  └─ ASM 인스턴스 +ASM
│     ├─ +DATA
│     └─ +FRA
└─ Oracle Database
   └─ ORCL 인스턴스
      └─ ORCL CDB (CDB$ROOT, PDB$SEED, ORCLPDB)

위 그림은 실습의 최종 목표 구조임
실습에서 실제로 만든 디스크 그룹 이름은 CRS, DATA, RECO이며 그림의 +FRA와 이름이 다름

실습 디스크 크기 용도
crs1, crs2, crs3 각 1GB ASM 파일용, Grid 설치 때 CRS 디스크 그룹
data 최소 20GB 데이터베이스용, DATA 디스크 그룹
reco 20GB 회복 영역용, RECO 디스크 그룹

실습에서는 OS 그룹으로 asmadmin, asmdba, asmoper를 만들고 ASM 디스크 장치를 oracle 사용자와 asmadmin 그룹이 소유하도록 설정했음
실습은 Grid와 DB를 같은 oracle 사용자로 설치했고, 환경 변수 별칭으로 ASM(+ASM, Grid 홈)과 DB(orcl, DB 홈)를 바꿔 가며 썼음

#필수 명령어 또는 SQL

#ASMLib 드라이버 구성

DB 서버 OS (root)객체 또는 설정을 변경함
oracleasm configure -i
oracleasm init
oracleasm status
oracleasm configure

결과 해석: 대화형 설정에서 드라이버 소유 사용자 oracle, 그룹 asmadmin, 부팅 시 시작과 디스크 검색을 y로 답했음
oracleasm status에서 ASM 로드와 /dev/oracleasm 마운트가 모두 yes, oracleasm configure에서 ORACLEASM_ENABLED=true, ORACLEASM_UID=oracle, ORACLEASM_GID=asmadmin이 보이면 됨
ASMLib 패키지(oracleasm-support, oracleasmlib)는 저장소에서 설치하고, 저장소에 없으면 실습에서는 addons 저장소를 켜거나 rpm을 직접 받았음

#ASM 디스크 만들기

DB 서버 OS (root)데이터 또는 파일을 삭제함, 되돌릴 수 없음
lsblk
fdisk /dev/sdb
oracleasm createdisk crs1 /dev/sdb1
oracleasm createdisk data /dev/sde1
oracleasm scandisks
oracleasm listdisks
ls -l /dev/oracleasm/disks/

결과 해석: VM에 디스크를 추가한 뒤 디스크마다 파티션을 하나 만들고(n, p, 1, 기본값, w) ASM 디스크로 표시함
실습에서는 crs1~3, data, reco 다섯 개를 같은 방식으로 만들었고 listdisks에 CRS1, CRS2, CRS3, DATA, RECO가 나왔음
마지막 명령으로 장치 소유권을 확인함
파티션 작업과 디스크 헤더 기록은 그 디스크의 기존 내용을 지움

#디스크 그룹 만들기와 상태 확인

DB 서버 OS (oracle, Grid 환경)객체 또는 설정을 변경함
grid_env
asmca

결과 해석: CRS 디스크 그룹은 Grid 설치 화면에서 만들고, asmca로 20GB 디스크 두 개를 각각 DATA와 RECO 디스크 그룹으로 만들었음
grid_env는 실습 .bash_profile의 별칭으로 ORACLE_HOME을 Grid 홈, ORACLE_SID를 +ASM으로 바꿈
asmca 화면 선택값은 이미지에만 있어 확인 불가(중복도, 할당 단위 등)

DB 서버 OS (oracle, Grid 환경)조회만 함
crsctl stat res -t

결과 해석: 실습 결과에서 ora.CRS.dg, ora.DATA.dg, ora.RECO.dg, ora.asm, ora.LISTENER.lsnr가 ONLINE/STABLE이고, 클러스터 리소스 ora.cssd, ora.evmd가 ONLINE이었음
ora.ons와 ora.diskmon은 OFFLINE이었음
단일 서버 Oracle Restart에서 이 두 리소스가 OFFLINE인 것이 정상인지는 수업 자료에 설명이 없음

DB 서버 OS (oracle)조회만 함
ps -ef | grep pmon
lsnrctl status

결과 해석: ASM과 DB 인스턴스의 pmon 프로세스가 각각 보이고, 리스너 상태에 ASM과 DB 서비스가 함께 나오면 됨
DB 접속 확인은 v$instance에서 STATUS OPEN임

#사용 조건과 주의사항

실습 리스너 설정은 Grid 홈의 listener.ora를 쓰며, 실습에서는 이 파일을 DB 홈으로 복사하면 안 된다고 적었음
이유는 기재 없음

실습 사전 준비 절의 제목은 "방화벽 해제"이지만 내용은 SELinux 설정이고, 값을 disable로 적은 줄과 disabled로 바꾸라는 설명이 함께 있음

실습 .bash_profile의 인벤토리 경로 변수 값은 오타로 보이는 철자가 있음

ASM 파일의 백업과 복구는 ASM 백업과 복구, RAC에서 ASM이 Clusterware와 맺는 관계는 고가용성 분야에서 다룸

SEO_HKabsumveritas@gmail.comBuilt with Claude Code & Codex

마지막 갱신 개인 학습 기록이며 운영 환경 적용 전 공식 문서 확인 필요

두 글자 이상 입력, 위아래 화살표로 이동하고 Enter로 열기