[Oracle] ASM 관련 쿼리(asm 조회, diskgroup, disk 추가 / 삭제, tablespace / datafile 추가)

728x90

ASM Disk 상세 정보 보기(DB)

모든 ASM Disk를 보여줍니다.

mount_state :

  • CLOSED : diskgroup에 속해있지 않은 Disk
  • CACHED : diskgroup에 추가된 Disk
set lines 300 pages 200
col path for a30
col name for a14

select group_number, disk_number, name, mount_status, path, total_mb, free_mb
from v$asm_disk
order by 1,3;

GROUP_NUMBER DISK_NUMBER NAME       MOUNT_S PATH                             TOTAL_MB    FREE_MB
------------ ----------- ---------- ------- ------------------------------ ---------- ----------
           1           0 OCRVOTE01  CACHED  AFD:OCRVOTE01                        1020        668
           1           1 OCRVOTE02  CACHED  AFD:OCRVOTE02                        1020        664
           1           2 OCRVOTE03  CACHED  AFD:OCRVOTE03                        1020        676
           2           0 DATA01     CACHED  AFD:DATA01                          10236       5516
           2           1 DATA02     CACHED  AFD:DATA02                          10236       5544
           3           0 RECO01     CACHED  AFD:RECO01                          20476       4548

 

asmcmd> lsdg

State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     20472    11060                0           11060              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304      3060     2008             1020             494              0             Y  OCRVOTE/
MOUNTED  EXTERN  N         512             512   4096  4194304     20476     3488                0            3488              0             N  RECO/

ASM Disk Group 생성(asmca x, 수동 생성)

새로운 Disk Group을 생성하기 위해서는 OS에서 ASM에 등록 및 스캔된 Disk가 필요합니다.

ASM Disk Group 생성

CREATE DISKGROUP <디스크그룹 이름> EXTERNAL REDUNDANCY DISK '<v$asm_disk 뷰의 path 컬럼값>';

ASM 인스턴스에 현재 연결되어 있는 Disk Group 확인

새로 추가된 Disk Group의 STATE가 MOUNTED 인지 확인합니다.

SET LINE 200
COL GROUP_NUMBER FOR 99
COL NAME FOR A10
COL TYPE FOR A10
COL STATE FOR A10

SELECT GROUP_NUMBER, NAME, TYPE, STATE FROM V$ASM_DISKGROUP;

GROUP_NUMBER NAME       TYPE       STATE
------------ ---------- ---------- ----------
           1 OCRVOTE    NORMAL     MOUNTED
           2 DATA       EXTERN     MOUNTED
           3 RECO       EXTERN     MOUNTED

 

ASM Disk Group 삭제(asmca x, 수동 삭제)

DROP DISKGROUP <디스크그룹 이름> INCLUDING CONTENTS;

 

ASM Disk 내용(DB)

SET LINE 200
COL DISK_GROUP FOR A10
COL LABEL FOR A10
COL STATE FOR A10
col path for a30
col name for a14

SELECT A.NAME AS DISK_GROUP, D.NAME "LABEL", A.STATE
FROM V$ASM_DISK D, V$ASM_DISKGROUP A
WHERE D.GROUP_NUMBER=A.GROUP_NUMBER
ORDER BY 2;


DISK_GROUP LABEL      STATE
---------- ---------- ----------
DATA       DATA01     MOUNTED
DATA       DATA02     MOUNTED
OCRVOTE    OCRVOTE01  MOUNTED
OCRVOTE    OCRVOTE02  MOUNTED
OCRVOTE    OCRVOTE03  MOUNTED
RECO       RECO01     MOUNTED

 

ASM Disk Group에 Disk 추가

ALTER DISKGROUP <디스크그룹 이름> ADD DISK '<v$asm_disk 뷰의 path 컬럼값>' REBALANCE POWER 5;

 

rebalance power 5의 의미는 디스크가 새로 생성될 시 리밸런싱의 속도를 정함.
0~1024 사이의 값을 가질 수 있으며,
0이면 rebalance를 비활성화하고
1024까지 갈 수록 리밸런스 속도가 빨라지지만
그만큼 I/O 오버헤드와 더 많은 프로세스가 작업을 하게되어
DB 서버의 성능 이슈가 발생할 수 있음.

 

참고. ASM rebalance power 값 확인

select * from v$asm_operation;

 

ASM Disk Group에서 Disk 삭제

ALTER DISKGROUP <디스크그룹 이름> DROP DISK '<v$asm_disk 뷰의 path 컬럼값>';

ALTER DISKGROUP <디스크그룹 이름> DROP DISK '<v$asm_disk 뷰의 path 컬럼값>' REBALANCE POWER 5;

Tablespace 생성

CREATE TABLESPACE <테이블스페이스 이름> DATAFILE SIZE 10M;

Data File 추가

ALTER TABLESPACE <테이블스페이스 이름> ADD DATAFILE SIZE 10M;

 

ASM을 사용할 때 data file 추가 시 생성 경로는 db_create_file_dest에 명시되어 있습니다.

  • oracle 유저로 sqlplus 접속 해 파라미터 조회
  • 디스크 그룹 이름과 파라미터 값이 다를 경우 에러가 발생할 수 있습니다.
SQL> show parameter db_create_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      +DATA

 

참고. db_create_file_dest 파라미터 값 변경(재기동 불필요)

ALTER SYSTEM SET db_create_file_dest='+DATA';

 

참고. add와 drop을 한 명령어로 사용 가능

alter diskgroup DATA add disk 'AFD:DATA02' drop disk 'DATA';

 

728x90