ASM - Automatic Storage Management
오라클에서 직접 파일들이 저장되는 Storage를 관리하는 방식
File System 과 Raw Device의 장점만을 결합한 방식
OS가 아닌 ASM에게 데이터를 저장하거나 불러오라고 요청함
성능이나 편리성이 많이 향상됨
※
File System
- OS를 통하여 데이터를 저장하고 관리하는 방식
- 사용자가 관리하기는 쉽지만, OS 성능에 따라 오라클 성능에 영향을 받는다
Raw Device
- 오라클에서 직접 storage에 데이터를 저장하는 방식
- OS를 거치지 않고 Application이 직접 디스크에 I/O를 발생, 성능은 File System보다 좋으나 관리하기가 어렵고 불편함
장점
1) 효율적인 디스크 관리
ASM 디스크 그룹에 새로운 디스크를 추가, 제거 작업 후의 후속 작업 (추가 후 파일 이동이나 재배치같은 작업들)들은
ASM에서 자동으로 Rebalancing 작업을 해줌
※ 디스크 그룹 (Disk Group)
ASM에서는 디스크를 여러개 묶어서 디스크 그룹으로 관리 ($asmcmd나, 설치시 설정 가능)
1개의 그룹에는 최소 디스크 2개 있어야 함
데이터가 들어올 때 AU(Allocation Unit)단위로 나누어서 각 디스크 그룹별로 분산시켜 저장
mirroring이 아니라, 똑같은 걸 분산시켜서 동시에 저장함
※ Rebalance
디스크를 추가하면 자동적으로 데이터를 균등하게 만듬
디스크 생성시 rebalance power n 으로 구성할 수 있음
eg) alter diskgroup testdb_dg1 add disk '/dev/sdf1' rebalance power 9 ;
n에는 10g -> 1~11 까지 가능 / 11g -> 1~1024 까지 가능
기본값은 1, 0을 쓰면 사용 안함
숫자가 클수록 rebalance 속도는 빨라진다. (우선순위로 작업한다는 뜻)
하지만 CPU 부하가 많이 걸리는 단점이 있으므로 상황에 맞게 숫자 조정할 것!
2) 디스크 I/O의 효과적 분산
RAID가 구현되어 있어도 디스크가 교체, 추가되면
기존 디스크와 신규 디스크 사이에 데이터가 균등하게 분산되지 못하고 쏠림 현상이 발생함
하지만 ASM은 AU(Allocation Unit)단위로 나누어서 서로 다른 디스크에 균등하게 분산시켜 저장함
--> I/O가 효과적으로 분산되어 저장되면서 성능이 아주 많이 향상됨, 디스크 튜닝이 필요없을 정도로..
AU(Allocation Unit)단위-> Oracle Block 개념
3) 비용 절감
고가의 RAID 장비나 별도의 하드웨어, 소프트웨어 필요없이도 오라클에서 software 적으로 관리 가능
구조
Oracle Server처럼 Instance 와 Disk Group으로 구성되어 있음
ASM Instance가 작동하지 않으면 Database Instance가 작동하더라도 데이터의 조회나 변경이 불가능 함
ASM Instance
디스크 그룹에 대한 정보를 수집해 Database Instance에 제공
디스크 관리를 위한 instance
디스크에 있는 데이터에 대한 데이터(metadata)를 가지고 있음
DB Buffer Cahce 같은 개념
디스트 안에 있는 내용을 Caching 해놓음으로서 최대한 디스크에 안가고 바로 작업할 수 있게 함
ASMB Process
ASM Instance와 Database Instance 사이에서 정보를 교환해 주는 역할
RBAL Process
디스크가 추가, 삭제되었을 경우 디스크 그룹에 대한 Rebalance를 담당
ASM Instance의 요청이 있을 경우 디스크를 열고 닫는 프로세스
ARBn(ARB1 ~ ARB9)
RBAL의 요청을 받아 실질적으로 작업을 수행하는 Process
※
Single Instance ASM: 단일 인스턴스로 구성되어 있는 여러 개의 데이터베이스들이
ASM Instance를 통해 Storage에 접속해서 데이터를 관리
RAC ASM: 각 노드별로 ASM 인스턴스를 구성해서 Storage에 접근하는 방식
OPEN / SHUTDOWN
ASM Instance에 접속하려면 초기화 파라미터 파일이 필요
경로는 역시 $ORACLE_HOME/dbs
주요 파라미터들
db_cache_size: metadata block 정보를 저장, ASM Instance가 사용할 cache 크기를 결정 (권장값은 64M)
shared_pool: 사용자가 원하는 정보 저장, ASM Instance를 관리하는 용도 (권장값은 128M)
large_pool: Extent Maps를 저장하는 용도 (권장값은 64M)
background_dump_dest: Alert Log가 저장되는 경로
core_dump_dest: core dump를 저장할 경로
그밖에
instance_type='asm'
asm_diskgroups='DATA','FRA'
remote_login_passwordfile='SHARED'
user_dump_dest
ASM Instance 와 Database Instance
DB 시작
$ export ORACLE_SID=+ASM
$ sqlplus / as sysdba
> startup
$ export ORACLE_SID=testdb
$ sqlplus / as sysdba
> startup
즉, ASM Instance 시작 -> Database Instance 시작
※ ASM Instance shutdown option
FORCE: ASM Instance shutdown abort 하고 재시작
MOUNT, OPEN: ASM Instance 시작후 디스크 그룹 마운트
MOMOUNT: ASM Instance 시작만, 디스크 그룹은 마운트 하지 않음
DB 종료
$ export ORACLE_SID=testdb
$ sqlplus / as sysdba
> shutdown immediate
$ export ORACLE_SID=+ASM
$ sqlplus / as sysdba
> shutdown immediate
즉, Database Instance 종료 -> ASM Instance 종료
ASM Instance 강제 종료 (shutdown abort) 되면 해당 Instance를 사용중이던 Database도 강제 종료됨
※ ASM Instance shutdown option
NORMAL: 현재 진행중인 세션이 종료될 때까지 기다렸다가 종료
TRANSACTIONAL: 현재 진행중인 트랜잭션이 끝날 때까지 기다렸다가 종료
IMMEDIATE: 현재 세션이 있어도 강제 종료, ASM Instance에 저장될 데이터가 있으면 전부 저장 후 종료됨
ABORT: 저장하지 않고 강제 종료
※
+ASM
+ 의 의미는 최상위 디렉토리르 뜻함
Unix 에서는 /data
ASM 에서는 +data
'오라클 백업/복구' 카테고리의 다른 글
ASM - RMAN으로 백업 및 복구 (10g) (0) | 2013.02.25 |
---|---|
ASM 관리 (0) | 2013.02.24 |
RMAN 백업으로 다른 서버에서의 DB 응급 복구 (0) | 2013.02.21 |
RMAN - Block Corruption Recovery + 11g New Features (0) | 2013.02.20 |
RMAN - 복구 (불완전 복구) (0) | 2013.02.19 |