ASM (Auto Storage Manager)


작성중
...



(http://tawool.tistory.com/205 : RHEL4 + ORACLE10g + ASM + DBCA )

목차
ASM
-장점 및 특징
-단점
-ASM 주요 파라미터
- 시작과 종료

Disk Group

Rebalance

Redundancy


ASM
사용자들의 요청이 들어오면 Oracle Instacne는 ASM Instance 에게 I/O 요청을 한다. 그러면 ASM Instance는 ASM 으로 관리되는 Database 에 I/O를 발생시킨다.
OS파일시스템에서는 해당 디스크가 Mount 가 되어 있는지 확인 할 수 없다. 그런 작업들은 ASM Instance 또는 asmcmd 를 통해서 파일의 목록 및 구조, 사용량 등을 확인 할 수 있다.

 ASM 을 사용하게 되면 ASM Instance가 동작해야 Oracle Instance 가 동작한다


OS의 파일시스템을 사용중이라고치면 ASN Instance는 OS, ASM은 OS File system 과 매치가 된다. 
 
 10g 이전의 Oracle 에서는 데이터파일에 데이터를 기록 할 때는 Row Device 또는 OS의 파일시스템을 통해 기록 되었다. 파일시스템은 편리성이 좋고, Row Device 방법은 IO 직접 Device에 접근하므로 성능이 파일시스템에 뛰어나지만 편리성이 떨어진다
 그래서 Oracle 10g에서는 ASM 이라는 기술이 등장했다.ASM은 파일시스템의 편리함과 Row Device의 빠른 성능을 제공하는 스토리지 관리기술이다.

장점 및 특징

 ASM 은 단순한 IO의 성능과 편리성을 제공하는 것이 아니다. 디스크를 추가하고 삭제하는대에 따르는 수많은 수고를 줄일 수 있다. 파일의 이동과 재배치 작업을 자동으로 해주는 Rebalancing 을 해준다.

디스크에 효과적인 I/O 발생 분산이 일어난다. 기존의 방식은 데이터가 잘 분산되어 저장되어 있었더라도 디스크가 추가되거나 제거, 교체 되면 균형이 깨지게 된다.   Database 특성상 여러 디스크에서 I/O가 고루 분산되어 발생해야 성능이 100% 발휘된다. ASM은 AU ( Allocation Unit ) 단위로 분산 기록하고 디스크튜닝이 필요 없을 만큼 ASM 이 자동으로 관리해준다.

ASM은 편하다. 실제로 써보면 설치후 파일의 다중화나 파일의 배치를 위해 이리저리 복사하고 이동했지만 그럴필요가 없다. 알아서 다 해준다. 

대용량 데이터베이스를 지원한다. 일명 VLDB(Very Large Database = ULDB ) 이라고 하는데. 140 PB(peta byte) 까지 지원한다. 

단점
백업은 RMAN 을 이용해야 한다. 문제는 RMAN 사용법은 익히면 되지만 RMAN 을 안정적으로 구축하기 위해서는 Catalog 정보를 관리할 RMAN Database Instance가 추가로 더 필요하다는 사실이다. 


ASM 주요 Parameter
db_cache_size : 권장값 64MB
shared_pool : 128 MB
Large_pool : 권장 64 MB


시작과 종료
ASM Instance 가 먼저 시작되고 Oracle Instance 를 시작해야 한다.
종료시에는 반대로 Oracle Instance 를 종료하고 ASM Instance 를 종료해야 한다.
만약 ASM 을 먼저 종료하려고 하면 종료되지 않고 강제종료하면 Database 도 강제 종료된다.



시작

$ export ORACLE_SID={ASM SID}
$ sqlplus { ID/PW } as sysdba -- DB 접속
startup
exit

$ export ORACLE_SID={db SID}
$ sqlplus { ID/PW } as sysdba -- ASM 접속
startup


종료

$ export ORACLE_SID={db SID}
$ sqlplus { ID/PW } as sysdba -- DB 접속
shutdown [option];
exit

$ export ORACLE_SID={ASM SID}
$ sqlplus { ID/PW } as sysdba -- ASM 접속
shutdown [option];
exit




Disk Group

한개의 그룹에는 최소 2개의 물리적 디스크가 존재해야 한다. ASM은 이 두개의 물리적 디스크에 AU 단위로 분산저장하게 되는데 10g 에서는 1M와 128kb 의 단위가 존재한다. 1M는 Coarse-grained 방식으로 데이터파일, archive log file 등을 기록할 때 사용된다. 128kb는 Fine Grained 방식으로 Redo log file, Control File, Flashback Log File을 기록할 때 사용된다.

11g 부터는 단위가 1/2/4/8/16/32/64 Mb 단위로 다양하게 지원된다.






Rebalancing
일반적으로 새로운 디스크가 추가되면 해당 디스크로 파일들을 분산저장해야 한다. 하지만 이를 ASM이 효과적으로 자동 분산기록한다. DBA는 디스크 추가 후에 

Alter diskgroup 그룹명 add disk '/dev/디스크' rebalance power n;

위의 쿼리에서 power 에 1-11 사이의 값을 넣어주면 되는데 1이 느리고 11이 가장 빠르지만 11을 사용하면 부하가 많이 걸려 운영에 지장을 미치게 된다. 기본값은 1이다.

한가지 방법으로 사용자의 접속 차단을 막고 다시 Mount 하는 방법을 사용할 수 있다.
Alter diskgroup 그룹명 mount restrict;

--rebalance끝나면 다시 Mount 한다.
Alter diskgroup 그룹명 dismount;
Alter diskgroup 그룹명 mount;






Redundancy
미러링을 의미한다.
Normal : 2-way, 3-way, Unprotected 를 지원하고 기본값은 2-way
High : 3-way
External : Unproected





참고
오라클 백업과 복구의 정석 : 서진수 저