버전 : ORACLE 19.3.0.0
ASM DISK 추가 시 동일 사이즈 LUN 추가를 권장하는 이유와
같은 DISK GROUP 다른 DISK 사이즈 상황에서 DATAFILE 추가 시 사이즈 할당이 어떻게 되는지 테스트 해 보았다.
요약 : - DISK SIZE에 비례해서 할당되는 사이즈도 달라진다 : 동일 사이즈의 LUN 추가를 권장하는 이유는 데이터 불균형이 발생 할 수 있기 때문 - ASM disk 사이즈가 다를 경우 데이터분산 불균형이 발생하므로 동일사이즈로 할당하는것을 권장 - 사이즈에 따른 성능 차이는 없으며 LUN 수가 많지 않게 하는 것을 권고(관리 오버헤드 발생) - ASM1 5G 이고 나머지는 1G 사이즈 데이터파일 사이즈를 100MB 늘렸더니 아래와 같이 할당 : 100/4 는 25MB 인데 ASM1을 제외한 나머지 디스크는 12M 씩 할당하고, ASM1 은 64M 할당 : 원래 사이즈가 5배 차이라 그에 맞게 5배 많이 할당 해주는 듯 ASM DISK 사이즈 ASM01, ASM02, ASM03 : 1G ASM1 : 5G 100M 데이터파일 추가 시 할당 된 사이즈 ASM01, ASM02, ASM03 : 12M ASM1 : 68M 1G 데이터파일 추가 시 할당 된 사이즈 ASM01 : 128M ASM02 : 136M ASM03 : 128M ASM1 : 644M |
-- USERS 테이블스페이스 datafile 확인
SQL> SELECT file_name, file_id, tablespace_name, bytes/1024/1024 MB
FROM DBA_DATA_FILES
WHERE tablespace_name = 'USERS'
;
FILE_NAME FILE_ID TABLESPACE_NAME MB
-------------------------------------------------- ---------- ------------------------------ ----------
+DATA/RACDB/DATAFILE/users.263.1078741095 7 USERS 100
-- ASM DISK 사이즈 확인
SQL> select a.group_number, a.name DiskGroup,b.name DiskName, b.total_mb, (b.total_mb-b.free_mb) Used_MB, b.free_mb,b.path,b.mount_status,header_status, b.state
from v$asm_disk b, v$asm_diskgroup a
where a.group_number (+) =b.group_number
AND a.GROUP_number = 1
order by b.group_number,b.name
;
GROUP_NUMBER DISKGROUP DISKNAME TOTAL_MB USED_MB FREE_MB PATH MOUNT_S HEADER_STATU STATE
------------ ------------------------------ -------------------- ---------- ---------- ---------- ------------------------------ ------- ------------ --------
1 DATA ASM01 1020 588 432 /dev/oracleasm/disks/ASM01 CACHED MEMBER NORMAL
1 DATA ASM02 1020 588 432 /dev/oracleasm/disks/ASM02 CACHED MEMBER NORMAL
1 DATA ASM03 1020 576 444 /dev/oracleasm/disks/ASM03 CACHED MEMBER NORMAL
1 DATA ASM1 5116 2852 2264 /dev/oracleasm/disks/ASM1 CACHED MEMBER NORMAL
-- DATA DISK GROUP 확인
SQL> select group_number, name, state, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb,round((1-(free_mb/total_mb))*100,2) used_pct
from v$asm_diskgroup
WHERE GROUP_number = 1
;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB USED_PCT
------------ ------------------------------ ----------- ------ ---------- ---------- ----------------------- -------------- ----------
1 DATA CONNECTED EXTERN 8176 3572 0 3572 56.31
-- 100M 데이터파일 추가
SQL> alter tablespace users add datafile '+DATA' size 100M autoextend off ;
Tablespace altered.
-- 데이터파일 확인
SQL> SELECT file_name, file_id, tablespace_name, bytes/1024/1024 MB
FROM DBA_DATA_FILES
WHERE tablespace_name = 'USERS'
;
FILE_NAME FILE_ID TABLESPACE_NAME MB
-------------------------------------------------- ---------- ------------------------------ ----------
+DATA/RACDB/DATAFILE/users.263.1078741095 7 USERS 100
+DATA/RACDB/DATAFILE/users.274.1104320455 2 USERS 100
-- DG 사이즈 확인
SQL> select group_number, name, state, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb,round((1-(free_mb/total_mb))*100,2) used_pct
from v$asm_diskgroup
WHERE GROUP_number = 1
;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB USED_PCT
------------ ------------------------------ ----------- ------ ---------- ---------- ----------------------- -------------- ----------
1 DATA CONNECTED EXTERN 8176 3468 0 3468 57.58
-- DISK 사이즈 확인
SQL> select a.group_number, a.name DiskGroup,b.name DiskName, b.total_mb, (b.total_mb-b.free_mb) Used_MB, b.free_mb,b.path,b.mount_status,header_status, b.state
from v$asm_disk b, v$asm_diskgroup a
where a.group_number (+) =b.group_number
AND a.GROUP_number = 1
order by b.group_number,b.name
;
GROUP_NUMBER DISKGROUP DISKNAME TOTAL_MB USED_MB FREE_MB PATH MOUNT_S HEADER_STATU STATE
------------ ------------------------------ -------------------- ---------- ---------- ---------- ------------------------------ ------- ------------ --------
1 DATA ASM01 1020 600 420 /dev/oracleasm/disks/ASM01 CACHED MEMBER NORMAL
1 DATA ASM02 1020 600 420 /dev/oracleasm/disks/ASM02 CACHED MEMBER NORMAL
1 DATA ASM03 1020 588 432 /dev/oracleasm/disks/ASM03 CACHED MEMBER NORMAL
1 DATA ASM1 5116 2920 2196 /dev/oracleasm/disks/ASM1 CACHED MEMBER NORMAL
-- 1G 데이터파일 추가
SQL> alter tablespace users add datafile '+DATA' size 1G autoextend off ;
Tablespace altered.
-- 데이터파일 확인
SQL> SELECT file_name, file_id, tablespace_name, bytes/1024/1024 MB
FROM DBA_DATA_FILES
WHERE tablespace_name = 'USERS'
;
FILE_NAME FILE_ID TABLESPACE_NAME MB
-------------------------------------------------- ---------- ------------------------------ ----------
+DATA/RACDB/DATAFILE/users.263.1078741095 7 USERS 100
+DATA/RACDB/DATAFILE/users.274.1104320455 2 USERS 100
+DATA/RACDB/DATAFILE/users.275.1104320531 8 USERS 1024
-- DG 사이즈 확인
SQL> select group_number, name, state, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb,round((1-(free_mb/total_mb))*100,2) used_pct
from v$asm_diskgroup
WHERE GROUP_number = 1
;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB USED_PCT
------------ ------------------------------ ----------- ------ ---------- ---------- ----------------------- -------------- ----------
1 DATA CONNECTED EXTERN 8176 2436 0 2436 70.21
-- DISK 사이즈 확인
SQL> select a.group_number, a.name DiskGroup,b.name DiskName, b.total_mb, (b.total_mb-b.free_mb) Used_MB, b.free_mb,b.path,b.mount_status,header_status, b.state
from v$asm_disk b, v$asm_diskgroup a
where a.group_number (+) =b.group_number
AND a.GROUP_number = 1
order by b.group_number,b.name
;
GROUP_NUMBER DISKGROUP DISKNAME TOTAL_MB USED_MB FREE_MB PATH MOUNT_S HEADER_STATU STATE
------------ ------------------------------ -------------------- ---------- ---------- ---------- ------------------------------ ------- ------------ --------
1 DATA ASM01 1020 728 292 /dev/oracleasm/disks/ASM01 CACHED MEMBER NORMAL
1 DATA ASM02 1020 732 288 /dev/oracleasm/disks/ASM02 CACHED MEMBER NORMAL
1 DATA ASM03 1020 716 304 /dev/oracleasm/disks/ASM03 CACHED MEMBER NORMAL
1 DATA ASM1 5116 3564 1552 /dev/oracleasm/disks/ASM1 CACHED MEMBER NORMAL
SQL>
ASM DISK 추가/삭제 성능 테스트(신규추가, 기존삭제)
'DBMS > ORACLE' 카테고리의 다른 글
RAC relink 작업 (0) | 2022.05.17 |
---|---|
시퀀스(sequence) last_number 의미와 alter sequence 시 변화 (0) | 2022.05.11 |
ARCHIVE(아카이브) HANG 조치, ORA-16020 (0) | 2022.03.28 |
redo log 사이즈 변경 RAC ASM (0) | 2022.03.25 |
srvctl stop/start database 명령은 어떤 노드부터 동작할까? (0) | 2022.03.25 |
댓글