오라클 ASM
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 ASM 이란?[편집]
https://docs.oracle.com/cd/E11882_01/server.112/e18951/asm_util001.htm#OSTMG01620
1.1 ASM Disk 그룹 조회[편집]
SELECT group_number,name,state,total_mb,free_mb
FROM v$asm_diskgroup;
1.2 ASM Disk 조회[편집]
select group_number,disk_number,name,mount_status,path,total_mb
from gv$asm_disk;
1.3 ASM File 조회[편집]
select group_number,file_number,round((bytes/1024/1024),1) MB, redundancy,type
from v$asm_file;
1.4 Disk 그룹/패스 조회[편집]
/* Formatted on 2019-12-04 오후 3:25:31 (QP5 v5.336) */
SELECT G.NAME DG_NAME
, D.PATH PATH
, D.TOTAL_MB DISK_SIZE_MB
, G.DATABASE_COMPATIBILITY DB_COMPATIBILITY
, G.COMPATIBILITY ASM_COMPATIBILITY
FROM V$ASM_DISK D
, V$ASM_DISKGROUP G
WHERE G.GROUP_NUMBER = D.GROUP_NUMBER;
1.5 (빅파일) 테이블 스페이스생성[편집]
https://docs.oracle.com/cd/E11882_01/server.112/e18951/asmdiskgrps.htm#OSTMG10205
CREATE BIGFILE TABLESPACE TS_XXX_D01 DATAFILE
SIZE 1G AUTOEXTEND ON NEXT 50M MAXSIZE 30G
LOGGING
DEFAULT
NO INMEMORY
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
1.6 테이블 스페이스 정보 조회[편집]
-- 그룹별 사용량
SELECT GROUP_NUMBER
, NAME
, TOTAL_MB
, FREE_MB
FROM V$ASM_DISK_STAT;
-- col name format a10
-- col USABLE_FILE_GB format 999,999.00
-- col TOTAL_GB format 999,999.00
-- col FREE_GB format 999,999.00
-- col USABLE_CALC_GB format 999,999.00
SELECT GROUP_NUMBER "Group#"
, NAME
, TOTAL_MB / 1024 TOTAL_GB
, ROUND ((TOTAL_MB - USABLE_FILE_MB) / 1024, 2) USED_GB
, USABLE_FILE_MB / 1024 USABLE_FILE_GB
, FREE_MB / 1024 FREE_GB
, 100 - ROUND (FREE_MB / TOTAL_MB * 100) "usgae(%)"
, ((FREE_MB - REQUIRED_MIRROR_FREE_MB)) / 1024 USABLE_CALC_GB
, TYPE
, STATE
FROM V$ASM_DISKGROUP;
SELECT G.NAME "GROUP_NAME"
-- F.GROUP_NUMBER
-- , G.TOTAL_MB
, ROUND (G.FREE_MB / 1024, 1) "GROUP_FREE(GB)"
-- , F.FILE_NUMBER
, ROUND (SPACE / 1024 / 1024 / 1024, 1) "REAL_SIZE(GB)"
, ROUND (BYTES / 1024 / 1024 / 1024, 1) "USABLE_SIZE(GB)"
-- , A.ALIAS_DIRECTORY
, MAX (A.NAME) "FILE_NAME"
FROM V$ASM_FILE F, V$ASM_ALIAS A, V$ASM_DISKGROUP G
WHERE F.GROUP_NUMBER = A.GROUP_NUMBER
AND F.FILE_NUMBER = A.FILE_NUMBER
AND A.GROUP_NUMBER = G.GROUP_NUMBER
AND SYSTEM_CREATED = 'Y'
GROUP BY (G.NAME
, ROUND (G.FREE_MB / 1024, 1)
, ROUND (SPACE / 1024 / 1024 / 1024, 1)
, ROUND (BYTES / 1024 / 1024 / 1024, 1))
ORDER BY G.NAME, MAX (A.NAME);