Oracle/ASM

Admin 2 20번째 ASM이란? ; 장단점, 구조, rebalance 등

에몽이ㅋ 2012. 3. 11. 12:43


ASM의 장점들
1. 디스크 I/O의 효과적인 분산
스토리지를 추가하면 이전 스토리지안에 있던 자료들이 자동으로 rebalance되어서 자료들이 분산됩니다.

2. VLDB지원(Very Large DB)


ASM의 Disk Group
ASM에서는 디스크를 여러개 묶어서 디스크 그룹으로 관리하는데, 1개의 그룹에는 최소 2개의 디스크가 있어야 합니다.
데이터가 들어올 때 AU라는 단위로 나누어서 각 디스크그룹별로 분산해서 저장하게 되는데,
AU(Allocation Unit)
   1) COARSE grained 방식 : 1MB단위로 기록되고, 주로 data, archivelog 파일에 사용
   2) FINE grained 방식 : 128KB단위로 기록되고, 주로 redo, control, flashback log 파일에 사용
의 두가지 옵션을 가집니다.
(11g  ASM부터는 AU의 종류가 1/2/4/8/16/32/64 MB로 다양하게 지원되어,
DB운영계획에 따라 적절히 지정하여 성능개선을 할 수 있습니다.)



Rebalance
Filesystem을 사용하게 되면 디스크그룹 내에 새 디스크가 추가되거나 제거되면 성능개선을 하기 위해서는 
DBA가 직접 기존 디스크의 내용을 분산하거나, 이동시켜야 합니다.
 

ASM을 이용하게 되면 이러한 rebalance작업은 자동으로 ASM에서 수행하게 되고,
DB부하에 따라 rebalance에 얼마나 많은 CPU%를 배당할지도 지정할 수 있습니다.

alter diskgroup testdb_dg1 add disk '/dev/sdf1' rebalance power 11;
(1~11 : 1이 rebalance되는 속도가 가장느리고, 11이 가장 빠름. 11로 갈수록 rebalance하는데 더 많은 CPU부하를 일으킵니다.)




ASM에서의 Restrict 옵션
관리자가 disk group 유지보수를 하기 위해 restrict 옵션을 제공하고, 이 옵션으로 디스크그룹을 mount할 경우 일반사용자는 접속할 수 없게되어,
유지관리성능을 더 향상시킬 수 있습니다.
alter diskgroup data mount restrict;
   유지보수종료 후 -->  alter diskgroup data dismount;  --> alter diskgroup data mount;

ASM Instance : 디스크그룹에 대한 정보를 수집해서 Database Instance에 제공, ASMB가 교두보역할
      ORACLE_SID=+ASM 으로 해당 인스턴스에 접속해서 mount, shutdown 할 수 있음
RBAL process : 디스크추가 및 삭제 시 디스크그룹에 대한 Rebalance담당, ASM Instance의 요청이 있을 경우 디스크를 열고 닫는 프로세스
ARBn : RBAL의 명령을 받아 실질적으로 작업을 수행하는 process



주의사항
ASM도 하나의 프로그램이므로, RAM에 mount되어야 DB가 운영이 됩니다.

DB open 시 : ASM먼저 MOUNT ---> DB open
완전히 끌때 : DB shutdown ---> ASM shutdown


*ASM Instance의 시작옵션 및 종료옵션
export ORACLE_SID=+ASM 이후 sqlplus에 접속하시면, ASM Instance에 접속하시는 것입니다.

a. startup옵션
FORCE : 이전 인스턴스를 shutdown abort하고 다시 시작.
MOUNT, OPEN : ASM Instance를 시작시킨 후 디스크그룹을 마운트(startup하면 자동으로 이 옵션이 적용)
NOMOUNT : ASM Instance를 시작하지만, 디스크그룹은 마운트하지 않습니다.(Diskgroup이 장애가 있을 때 사용)

b. shutdown옵션
NORMAL, IMMEDIATE, TRANSACTIONAL, ABORT : DB Instance와 동일
(-ABORT(shutdown abort) 사용시 DB가 open되어있어도 강제로 ASM Instance가 종료되어 버리므로, 자동으로 DB도 강제종료됩니다.)