프린트 하기

OS 환경 : Oracle Linux 8.4 (64bit)

 

DB 환경 : Oracle Database 19.27.0.0

 

에러 : [DBT-05802] Creating password file on diskgroup (DATA) would fail since it requires compatible.asm of version (12.1.0.0.0) or higher.

19c 설치시 디스크그룹을 create 구문으로 수동 생성 후 dbca할때 data영역을 +DATA 디스크그룹으로 설정하려 할때 발생하는 에러

1
2
[DBT-05802] Creating password file on diskgroup (DATA) would fail since it requires compatible.asm of version (12.1.0.0.0) or higher. 
Current compatible.asm version is '11.2.0.2.0'.

 

 

해결 방법 : 디스크그룹의 compatiblity 변경

현재 디스크그룹의 compatibility 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> 
set lines 200  pages 1000
col name for a10
col compatibility for a20
col database_compatibility for a20
select group_number, name, compatibility, database_compatibility, allocation_unit_size/1024/1024 au_mb, state from v$asm_diskgroup;
 
GROUP_NUMBER NAME       COMPATIBILITY        DATABASE_COMPATIBILI      AU_MB STATE
------------ ---------- -------------------- -------------------- ---------- -----------
           1 OCR        19.0.0.0.0           10.1.0.0.0                    4 MOUNTED
           2 VOTE       11.2.0.2.0           10.1.0.0.0                    1 MOUNTED
           3 DATA       11.2.0.2.0           10.1.0.0.0                    1 MOUNTED
           4 RECO       11.2.0.2.0           10.1.0.0.0                    1 MOUNTED

OCR은 grid 설치시 gui에서 생성되어 compatibility가 19.0에 AU 크기는 4MB으로 설정되어있지만
나머지 디스크그룹은 현재 11.2.0.2.0으로 되어있고 AU 크기도 1MB임

 

 

디스크그룹 호환성만 문제인경우 호환성만 변경

1
2
3
4
5
6
$ export ORACLE_SID=+ASM1
$ export ORACLE_HOME=$GRID_HOME
$ sqlplus / as sysasm
$ asmcmd setattr -G DATA compatible.asm 19.0.0.0.0
$ asmcmd setattr -G RECO compatible.asm 19.0.0.0.0
$ asmcmd setattr -G VOTE compatible.asm 19.0.0.0.0

 

 

AU 크기도 변경해야하는경우 디스크그룹을 다른 노드에서 dismount 후 drop 후 다시 create 해주어야함
2번노드의 디스크그룹 dismount

1
2
3
$ srvctl stop diskgroup -g DATA -n ora19rac2
$ srvctl stop diskgroup -g RECO -n ora19rac2
$ srvctl stop diskgroup -g VOTE -n ora19rac2

 

 

디스크그룹 삭제

1
2
3
4
SQL>
drop diskgroup data including contents;
drop diskgroup reco including contents;
drop diskgroup vote including contents;

 

 

디스크그룹 재생성

1
2
3
4
5
6
7
8
SQL>
create diskgroup vote normal redundancy disk
'/dev/oracleasm/disks/VOTE1','/dev/oracleasm/disks/VOTE2','/dev/oracleasm/disks/VOTE3'
attribute 'compatible.asm'='19.0.0.0.0', 'compatible.rdbms'='10.1.0.0.0', 'au_size'='4m';
create diskgroup data external redundancy disk '/dev/oracleasm/disks/DATA01'
attribute 'compatible.asm'='19.0.0.0.0', 'compatible.rdbms'='10.1.0.0.0', 'au_size'='4m';
create diskgroup reco external redundancy disk '/dev/oracleasm/disks/RECO01'
attribute 'compatible.asm'='19.0.0.0.0', 'compatible.rdbms'='10.1.0.0.0', 'au_size'='4m';

*초기 디스크그룹 생성시 1번노드만 mount됨, 2번노드는 수동으로 마운트 해줘야함

 

 

2번노드의 디스크그룹 mount

1
2
3
$ srvctl start diskgroup -g DATA -n ora19rac2
$ srvctl start diskgroup -g RECO -n ora19rac2
$ srvctl start diskgroup -g VOTE -n ora19rac2

 

 

현재 디스크그룹의 속성 재확인

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> 
set lines 200  pages 1000
col name for a10
col compatibility for a20
col database_compatibility for a20
select group_number, name, compatibility, database_compatibility, allocation_unit_size/1024/1024 au_mb, state from v$asm_diskgroup;
 
GROUP_NUMBER NAME       COMPATIBILITY        DATABASE_COMPATIBILI      AU_MB STATE
------------ ---------- -------------------- -------------------- ---------- -----------
           1 OCR        19.0.0.0.0           10.1.0.0.0                    4 MOUNTED
           3 DATA       19.0.0.0.0           10.1.0.0.0                    4 MOUNTED
           2 VOTE       19.0.0.0.0           10.1.0.0.0                    4 MOUNTED
           4 RECO       19.0.0.0.0           10.1.0.0.0                    4 MOUNTED

모두 정상적으로 compatibility와 au 크기가 설정되고 mount됨

 

 

이후 dbca에서 next버튼을 누르면 정상적으로 진행될것임

 

 

원인 : asm 디스크그룹 추가시 아무 옵션도 없이 디스크만 입력하고 생성해서 발생한 문제

asm 디스크그룹 추가시 아무 옵션도 없이 디스크만 입력하고 생성했기 때문에 compatibility와 au 크기가 기본값으로 설정되었음

1
2
3
4
5
6
7
8
$ export ORACLE_SID=+ASM1
$ export ORACLE_HOME=$GRID_HOME
$ sqlplus / as sysasm
SQL> 
create diskgroup vote normal redundancy disk \
'/dev/oracleasm/disks/VOTE1','/dev/oracleasm/disks/VOTE2','/dev/oracleasm/disks/VOTE3';
create diskgroup data external redundancy disk '/dev/oracleasm/disks/DATA01';
create diskgroup reco external redundancy disk '/dev/oracleasm/disks/RECO01';

 

 

아래와 같이 사용하려는 compatibility와 au 크기를 명시해줘야함

1
2
3
4
5
6
7
8
SQL>
create diskgroup vote normal redundancy disk
'/dev/oracleasm/disks/VOTE1','/dev/oracleasm/disks/VOTE2','/dev/oracleasm/disks/VOTE3'
attribute 'compatible.asm'='19.0.0.0.0', 'compatible.rdbms'='10.1.0.0.0', 'au_size'='4m';
create diskgroup data external redundancy disk '/dev/oracleasm/disks/DATA01'
attribute 'compatible.asm'='19.0.0.0.0', 'compatible.rdbms'='10.1.0.0.0', 'au_size'='4m';
create diskgroup reco external redundancy disk '/dev/oracleasm/disks/RECO01'
attribute 'compatible.asm'='19.0.0.0.0', 'compatible.rdbms'='10.1.0.0.0', 'au_size'='4m';

 

 

또는 asmca를 사용하면 자동으로 이런 값들을 지정해서 넣어줌

 

 

참조 : 

2676282.1
https://checktech.tistory.com/24