본문 바로가기

IT관련

Oracle RAC ASM 에 있는 파라메타파일 오류로 Startup 안되는 경우 (ORA-00821, ORA-01078, ORA-01565, ORA-27037)

Oracle ASM 을 사용하는 RAC 환경에서 데이터베이스 파라메타 파일은 $ORACLE_HOME/dbs 디렉토리가 아니라, ASM 스토리지에 위치하고 있습니다.

파라메타 잘못 수정해서 startup 시 에러가 나는 경우, 보통은 create pfile from spfile; 커맨드로 수정해서 띄우면 되는데 ASM 에서는 이게 안되는 경우가 있습니다.

 

SQL> startup
ORA-00821: Specified value of sga_target 10240M is too small, needs to be at least 11648M
ORA-01078: failure in processing system parameters
SQL>
SQL> create pfile from spfile;
create pfile from spfile
*
ERROR at line 1:
ORA-01565: error in identifying file '?=/dbs/spfile@.ora'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 7

 

결론부터 바로 말하자면, create pfile from spfile; 만 하면 안되고, spfile 뒤에 ASM 내에 있는 파일위치를 지정해줘야 합니다.

 

SQL> create pfile from spfile='+DATA/ORA19/PARAMETERFILE/spfile.275.1122335907';
File created.

 

이렇게 하면 $ORACLE_HOME/dbs 디렉토리에 가보면 init<SID>.ora 파일이 생성된 것을 확인할 수 있습니다.

이 파일을 vi 편집기로 열어서 잘못된 파라메타를 수정한 후에 다음과 같이 pfile 로 Startup 해주면 됩니다.

 

$ cd $ORACLE_HOME/dbs
$ sqlplus / as sysdba
SQL>
SQL> startup pfile=initORA191.ora
ORACLE instance started.

Total System Global Area 1.0737E+10 bytes
Fixed Size                  8923248 bytes
Variable Size            1291845632 bytes
Database Buffers         6207569920 bytes
Redo Buffers                7852032 bytes
In-Memory Area           3221225472 bytes
Database mounted.
Database opened.

 

앞에서 ASM 에 있는 파라메타파일 위치를 지정했었는데, 이 위치를 찾는 방법은 아래와 같이 asmcmd 로 들어가서 확인할 수 있습니다.

 

$ asmcmd -p
ASMCMD [+] > ls
DATA/
ASMCMD [+] > cd DATA
ASMCMD [+DATA] > ls
ASM/
ORA19/
ol7r-cluster/
orapwasm
orapwasm_backup
ASMCMD [+DATA] > cd ORA19
ASMCMD [+DATA/ORA19] > ls
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
PASSWORD/
TEMPFILE/
ASMCMD [+DATA/ORA19] > cd PARAMETERFILE
ASMCMD [+DATA/ORA19/PARAMETERFILE] > ls
spfile.275.1122335907

 

asmcmd 는 일반 shell command 환경과 비슷하기 때문에 ls, cd 커맨드로 디렉토리를 돌아다니면서 파일 확인이 가능합니다.

asmcmd 를 띄우려면, RAC 에서 DB환경이 아니라 Grid Infrastructure 환경이어야 합니다.

 

export ORACLE_SID=+ASM1
export ORACLE_HOME=/u01/app/19.0.0/grid

 

이제, 정상 Startup 이 되는 제대로된 pfile 을 가지고 ASM 에 다시 spfile 로 집어넣을 필요가 있습니다.

이건 아래 링크를 참조 바랍니다.

 

참조▶ Oracle RAC ASM 에서 외부 파라메타파일을 spfile 로 넣는 방법 (create spfile from pfile)