새싹 DBA/Oracle

[오라클] ASM 디스크 추가

LIMMI 2025. 1. 22. 10:45

--ASM 디스크 내용 확인

SELECT DISK.PATH, DG.NAME "DISKGROUP", DG.STATE, DG.TYPE
  FROM V$ASM_DISKGROUP DG, V$ASM_DISK DISK
 WHERE DG.GROUP_NUMBER = DISK.GROUP_NUMBER;

 

-- ASM 인스턴스에 연결되어 있는 DISK GROUP

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

 

-- 각 디스크 그룹 별 세부 정보 

SELECT GROUP_NUMBER, DISK_NUMBER, NAME, MOUNT_STATUS, PATH, TOTAL_MB, FREE_MB
  FROM V$ASM_DISK
 ORDER BY 1,3;

 

1. ASM DISK 생성 (root 계정)

1) 물리 디스크 확인

$fdisk-l #디스크 및 파티션 확인
Disk/dev/mapper/vg00-lv_08: 1000GiB, 1073737629696 bytes, 2097143808 sectors
Units: sectors of 1*512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

  

2) Disk Label 확인 (lsblk)

$lsblk -o NAME, KNAME, LABEL, TYPE, SIZE, MOUNTPOINT

NAME KNAME LABEL TYPE SIZE MOUNTPOINT
sda sda disk 100G
|--sda1 sda1 part 512M/boot
|--sda2 sda2 part 40G/
|--sda3 sda3 part 10G[SWAP]
|--sda4 sda4 part 1K
|--sda5 sda5part 49.5G/ GCLOUD

sdb sdba disk 2T
|--vgg00-lv_oracle dm-0 lvm 100G /oracle/db
|--vg00-lv_logs dm-1 lvm 100G logs/oracle
|--vg00-lv_grid dm-2 lvm 100G /grid/db
|--vg00-lv_01 dm-3 DATA1 lvm 200G
|--vg00-lv_02 dm-4 DATA2 lvm 200G
|--vg00-lv_03 dm -5 DATA3 lvm 200G
|--vg00-lv_04 dm-6 DATA4 lvm 200G
|--vg00-lv_05 dm-7 DATA5 lvm 200G
|--vg00-lv_06 dm-8 DATA6 lvm 200G
|--vg00-lv_07 dm-9 RECO lvm 100G

 

-- 매핑 확인

$cd dev/mapper/
$ls-al
# 할당된 볼륨 별 매핑 확인할 수 있음

 

3) ASM에 할당되지 않은 볼륨을 ASM DISK로 생성 

$ oracleasm create disk DATA7 /dev/mapper/vg00-lv_08
Writing disk header : done
Instantiation disk:done

#등록확인
$oracleasm listdisks

 

2. ASM DISKGROUP 에 DISK 할당 (grid 계정)

#추가할 수 있는 디스크 조회
$ASMCMD > lsdsk --candidate
#OR
# sqlplus 접속
sqlplus / as sysasm
SQL> SELECT D.GROUP_NUMBER, A.NAME AS DISK_GROUP, A.STATE, D.DISK_NUMBER, D.NAME, D.STATUS, D.PATH, D.TOTAL_MB, D.FREE_MB
       FROM V$ASM_DISK D
          , V$ASM_DISKGROUP A
      WHERE D.GROUP_NUMBER = A.GROU_NUMBER(+)
      ORDER BY 1,4;
      
 SQL> ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/DATA7' REBALANCE POWER 64;
 Diskgroup altered.

 

3. 결과 확인

SELECT GROUP_NUMBER, DISK_NUMBER, NAME, MOUNT_STATUS, PATH, TOTAL_MB
  FROM V$ASM_DISK;