① 파일 시스템
장점 : 사용자 편의성이 좋다.
단점 : OS의존도가 너무 높아 OS의 성능에 따라 오라클의 성능이 좌우된다.

 
② Raw Device
장점 : 속도빠름 (OS를 거치지않고 Application 이 직접 디스크에 I/O를 발생함)
단점 : 관리하기가 어렵다. (파일1개 = 디스크1개)

 
① 파일 시스템 장점 + ② Raw Device 장점 = ASM
 


ASM (Automatic Storage Management)
 : 오라클에서 스토리지를 직접 관리하는 기술
 : 데이터를 저장하거나 불러오는 원리는 파일시스템과 비슷하지만,
   OS가 아닌 ASM에게 요청하는 부분에서 차이가 난다.

 
 

1. 특징 (장점)
 1) 효율적 디스크 관리
  : 디스크추가/삭제 보다 쉽게할수 있다.(정확히는 디스크 추가후 파일 재배치작업)
    관리자가 ASM 디스크 그룹에 새로운 디스크를 추가하거나 제거하기만 하면
    ASM에서 자동으로 Rebalancing 작업을 해준다.
 
 2) 디스크 I/O의 효과적 분산
  : 기존 방식은 디스크가 교체되거나 추가되면 데이터가 균등하게 분산되지 못하고 한족으로 쏠리는 현상이 발생
    ASM은 AU(Allocation Unit) 이란 단위로 나누어서 서로 다른 디스크에 균등하게 분산시켜 저장함.
            
 3) 비용 절감
 : 소프트웨어 적으로 RAID 기능 구현됨 → 현실은 RAID 씀(안정적 운용)
 
 4) VLDB 지원 (11g ASM New Feature)
 : 140 Peta Byte까지 지원(ASM Mirroring 안할경우)
  ※ 참고 : VLDB(very large DB), ULDB(ultra large DB)    
 
 
 
 

 
 
 
2. Rebalance
명령어 

+ASM> alter diskgroup testdb_dg1 add disk '/dev/sdf1' rebalance power 11;

옵션설명 : rebalance power n(숫자: 1 ~ 11) - 1:가장느림(기본값), 11:가장빠름(CPU부하 많이걸림)
 

ASM (Disk Group : 여러개의 디스크를 묶어서 하나의 디스크처럼 관리)
기존5개하드 + 새하드1개 = 자동으로 Rebalancing 작업 해준다.(균등하게 입력됨)

 
 


Cf. 기존 File system 방식
5개하드 + 새하드1개 = 새하드에 추가데이터 입력된다

 
 

 
 
 
 
 
3. ASM 프로세스 구조
 

ASM 인스턴스 구조 = 오라클인스턴스 + ASM인스턴스
 


1) ASM Instance
 : 디스크 그룹에 대한 정보를 수집해서 Database instance에게 제공한다.
 
- ASMB 프로세스 : ASM인스턴스 와 DB인스턴스 사이에서 정보를 교환해주는 역할

- RBAL 프로세스 : 디스크 추가/삭제 시 디스크 그룹에 대한 Rebalance를 담당한다.
                            ASM Instance의 요청이 있을 경우 디스크를 열고 닫는 프로세스

- ARBn(ARB1~ARB9) : RBAl 프로세스의 요청을 받아 실질적으로 잡업을 해주는 프로세스
 
 
 

2) 양쪽 인스턴스 따로 관리&제어 되어야 한다.
 : DB 인스턴스와 마찬가지로 ASM 인스턴스도 초기화 파일이 있어야 한다.
   $ORACLE_BASE/dbs/spfile+ASM.ora 가 ASM의 초기화 파일이다.
 
 
① 선행작업 : ASM인스턴스로 접속하기
 

$ export ORACLE_SID=+ASM
$ sqlplus / as sysdba


 
 
② ASM Instance 시작 및 종료 옵션
 
- ASM 인스턴스 startup 옵션
 
FORCE : ASM 인스턴스 재시작시, 이전 프로세스를 shutdown abort 하고 다시 시작
MOUNT, OPEN : ASM 인스턴스를 시작하고, 설정된 디스크 그룹을 마운트 (실제 사용)
NOMUNT : ASM 인스턴스를 시작하지만, 디스크 그룹은 마운트 되지 않음 (디스크그룹이 고장나서 고칠때 사용)
 
 

- ASM 인스턴스 shutdown 옵션
 
NORMAL : SQL 세션 및 세션내에서 진행 중인 트랜젝션이 종료 될때까지 기다린후 ASM instance 를 종료
IMMEDIATE, TRANSACTIONAL : SQL 세션을 무시하고 shutdown 에 들어가지만, 진행중인 트랜젝션이 있을경우 트랜젝션이 끋날때 까지 기다림
ABORT : SQL 세션과 트랜젝션을 모두 무시하고 강제 종료
 
 

※ 주의 : ASM환경에서..
오라클은 ASM이 열려있는 상태에서 open 또는 Shutdown 되어야 한다.
 : ASM이 파일 관리를 해주기 때문이다. (기존에는 파일을 OS에서 관리했음)
 
Ex. DB끄기 → ASM끄기 → ASM켜기 → DB켜기


 
 
 
③ ASM SGA 및 주요 parameters
 : ASM Instance 를 통해서 입 출력이 되기 때문에 관련 파일과 파라미터들이 있다.
 
 
주요파라미터
 - db_cache_size : ASM Instance 가 사용할 cache 크기 결정. 오라클권장값 64M
 - shared_pool : ASM Instance를 관리하는 용도로 사용. 오라클권장값 128M
 - Large_pool : Extent Maps 을 저장하는 용도. 오라클권장값 64M
 

※ 참고
$ORACLE_HOME/dbs/init+ASM.ora
내용
 
*.asm_diskgroups='DATA','FRA'
+ASM.asm_diskgroups='DATA','FRA','NEW_ASM'#Manual Mount
*.background_dump_dest='/home/oracle/admin/+ASM/bdump' → alert log file 저장 경로 지정
*.core_dump_dest='/home/oracle/admin/+ASM/cdump' → core dump 를 저장할 경로 지정
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='/home/oracle/admin/+ASM/udump'


 
 
▶ 위 파라미터 외 다른 파라미터를 잘못 지정 할 경우 ORA_15021 에러 발생 - ASM Instance 가 구동 되지 않는다.
 
 
Posted by 딩구르
,