프린트 하기

OS 환경 : Oracle Linux 7.6 (64bit)

 

DB 환경 : Oracle Database 12.2.0.1

 

방법 : 오라클 12cR2 asm 환경 v$asm_disk 의 path 컬럼 값

오라클 asm library 를 이용해 구성한 asm 환경에서 v$asm_disk 뷰의 path 부분을 보면
어떤 db는 ORCL:ASM01 이런식으로 표시되어 있고, 어떤 db는 /dev/oracleasm/disks/ 이런식으로 표시되어 있는것을 확인함
결론부터 말하자면 asmcmd 에서 dsget 해서 나오는 profile 과 parameter 에 의해 path 경로 표시 방법이 조정됨
본문에서는 신규 asm 디스크를 추가하면서 dsget의 profile 과 parameter 값에 따라 어떻게 표시되는지 확인해봄

 

 

테스트
1. /dev/oracleasm/disks/ 로 설정된 상태에서 asm 디스크 추가
2. ORCL:* 로 설정된 상태에서 asm 디스크 추가

 

 

테스트
1. /dev/oracleasm/disks/ 로 설정된 상태에서 asm 디스크 추가
asm 환경설정으로 변경(또는 grid 유저로 접속)

1
2
$ export ORACLE_HOME=$GRID_HOME
$ export ORACLE_SID=+ASM

 

 

asmcmd 실행 후 dsget 확인

1
2
3
4
$ asmcmd -p
ASMCMD [+] > dsget
parameter:/dev/oracleasm/disks/
profile:/dev/oracleasm/disks/

현재 /dev/oracleasm/disks/ 로 되어있음

 

 

asm instance 접속하여 parameter 확인

1
2
3
4
5
6
$ sqlplus / as sysasm
SQL> show parameter asm_diskstring
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring                       string      /dev/oracleasm/disks/

현재 /dev/oracleasm/disks/ 로 되어있음

 

 

이 상태에서 oracleasm createdisks 명령으로 디스크를 추가하면
v$asm_disk 의 path 컬럼이 /dev/oracleasm/disks/{신규디스크}로 생성됨

 

 

oracleasm 으로 디스크 추가

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
createdisk
# oracleasm createdisk asm03 /dev/sde1
Writing disk header: done
Instantiating disk: done
 
scandisks
# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
 
listdisks
# oracleasm listdisks
ASM01
ASM02
ASM03 <<-- 추가한 디스크
FRA01

 

 

추가한 디스크 확인

1
2
3
4
5
6
7
8
9
10
$ sqlplus / as sysasm
SQL>
set line 200
col path for a15
select group_number, mount_status, path, total_mb
from v$asm_disk where mount_status='CLOSED';
 
GROUP_NUMBER MOUNT_S PATH TOTAL_MB
------------ ------- --------------- ----------
0 CLOSED /dev/oracleasm/disks/ASM03 0

/dev/oracleasm/disks/ASM03 으로 추가됨

 

 

기존 디스크그룹에 디스크 추가

1
2
3
SQL> alter diskgroup data add disk '/dev/oracleasm/disks/ASM03' rebalance power 5;
 
Diskgroup altered.

 

 

확인

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL>
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 DATA_0000      CACHED  /dev/oracleasm/disks/ASM02           5112       2560
           1           1 DATA_0001      CACHED  /dev/oracleasm/disks/ASM01           5112       2560
           1           2 DATA_0002      CACHED  /dev/oracleasm/disks/ASM03           5112       2580  <<<-- 추가된 디스크
           2           0 FRA_0000       CACHED  /dev/oracleasm/disks/FRA01           5112       4376

정상적으로 /dev/oracleasm/disks/ASM03 형태로 추가됨

 

 

2. ORCL:* 로 설정된 상태에서 asm 디스크 추가
asmcmd 접속하여 profile 변경

1
2
$ asmcmd -p
ASMCMD [+] > dsset --profile 'ORCL:*'

 

 

asm instance 접속하여 parameter 변경

1
2
3
SQL> alter system set asm_diskstring='ORCL:*' scope=spfile;
 
System altered.

 

 

파라미터 적용을 위해 asm 인스턴스 재기동이 필요함

db 인스턴스 종료

1
$ srvctl stop database -d orcl

 

 

asm 인스턴스 재기동

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sqlplus / as sysasm
SYS@+ASM> shutdown immediate
ASM diskgroups dismounted
ASM instance shutdown
 
SQL> startup
ASM instance started
 
Total System Global Area 1140850688 bytes
Fixed Size                  8629704 bytes
Variable Size            1107055160 bytes
ASM Cache                  25165824 bytes
ASM diskgroups mounted

 

 

parameter 재확인

1
2
3
4
5
SQL> show parameter asm_diskstring
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring                       string      ORCL:*

정상적으로 ORCL:*로 변경됨

 

 

asmcmd 실행 후 dsget 재확인

1
2
3
4
$ asmcmd -p
ASMCMD [+] > dsget
parameter:ORCL:*
profile:ORCL:*

모두 ORCL:* 로 변경됨

 

 

oracleasm 으로 디스크 추가

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
createdisk
# oracleasm createdisk asm04 /dev/sdf1
Writing disk header: done
Instantiating disk: done
 
scandisks
# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
 
listdisks
# oracleasm listdisks
ASM01
ASM02
ASM03
ASM04 <<-- 추가한 디스크
FRA01

 

 

추가한 디스크 확인

1
2
3
4
5
6
7
8
9
10
$ sqlplus / as sysasm
SQL>
set line 200
col path for a15
select group_number, mount_status, path, total_mb
from v$asm_disk where mount_status='CLOSED';
 
GROUP_NUMBER MOUNT_S PATH              TOTAL_MB
------------ ------- --------------- ----------
           0 CLOSED  ORCL:ASM04               0

ORCL:ASM04 으로 추가됨

 

 

기존 디스크그룹에 디스크 추가

1
2
3
SQL> alter diskgroup data add disk 'ORCL:ASM04' rebalance power 5;
 
Diskgroup altered.

 

 

확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SQL>
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           3 ASM04          CACHED  ORCL:ASM04                           5112       4212  <<<-- 추가된 디스크
           1           0 DATA_0000      CACHED  ORCL:ASM02                           5112       2856
           1           1 DATA_0001      CACHED  ORCL:ASM01                           5112       2864
           1           2 DATA_0002      CACHED  ORCL:ASM03                           5112       2868
           2           0 FRA_0000       CACHED  ORCL:FRA01                           5112       4376

ASM04가 정상적으로 추가됨
기존 디스크들도 /dev/oracleasm/disks/ 형식이 아닌 ORCL: 형식으로 표시됨

 

 

결론 :
본문 테스트 결과와 같이 asmcmd 에서 dsget 해서 나오는 profile 과 parameter 에 의해 path 경로 표시 방법이 조정됨
각각 dsset 명령과 alter system 명령으로 수정 가능함
만약 dsget profile 과 parameter 를 다르게 설정해놓는 경우 2가지 방식이 같이 표시될수 있으니 동일하게 설정해두는것이 권장됨

 

 

참조 : 

1410243.1
https://positivemh.tistory.com/355