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
'ORACLE > Admin' 카테고리의 다른 글
오라클 19c sys 유저도 lock이 걸릴까? (0) | 2024.08.06 |
---|---|
오라클 19c varchar2 컬럼에서 clob 으로 변경 가이드 (0) | 2024.07.31 |
오라클 23ai 신기능 load_method, load_type 힌트 (0) | 2024.07.05 |
오라클 23ai 신기능 Direct Load(Direct Path Insert) 에 대한 제약 해제 (0) | 2024.07.02 |
오라클 23ai 신기능 xplan 의 Query Block Registry 개선 (0) | 2024.07.01 |