본문 바로가기
Oracle/이벤트

ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST

by 취미툰 2022. 11. 4.
반응형

상황

노아카이브 모드에서 아카이브 모드로 변경하는 도중 LOG_ARCHIVE_DEST와 LOG_ARCHIVE_DEST_1을 동일 경로로 하고 아카이브 모드 적용을 위해 DB restart를 할 때 발생하였습니다. 

 

원인

LOG_ARCHIVE_DEST 와 LOG_ARCHIVE_DEST_1은 같은 값으로 설정되면 안됩니다.

 

에러 내용은 아래와 같습니다.

$ oerr ora 16019
16019, 00000, "cannot use %s with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST"
// *Cause:  One of the following events caused an incompatibility:
//          1) Parameter LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST was in
//          use when the specified LOG_ARCHIVE_DEST_n (n = 1...31) or
//          DB_RECOVERY_FILE_DEST parameter was encountered while fetching
//          initialization parameters.
//          2) Parameter LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST was in
//          use when an attempt was made to use an ALTER SYSTEM or ALTER
//          SESSION command to define a value for the specified
//          LOG_ARCHIVE_DEST_n or DB_RECOVERY_FILE_DEST parameter.
//          3) An ALTER SYSTEM ARCHIVE LOG START TO command was in effect
//          when the specified LOG_ARCHIVE_DEST_n parameter was encountered
//          while fetching initialization parameters.
//          4) An ALTER SYSTEM ARCHIVE LOG START TO command was in effect
//          when an attempt was made to use an ALTER SYSTEM or ALTER SESSION
//          command to define a value for the specified LOG_ARCHIVE_DEST_n
//          parameter.
// *Action: Eliminate any incompatible parameter definitions.

 

해결

DB가 Open되지 않는 상황이기 때문에 nomount 상태에서 pfile을 하나 만들어 그곳에서 파라미터를 수정 후 다시 DB에 적용하여 그것을 토대로 spfile을 다시 생성하는 방법으로 해결하였습니다.

 

1)DB를 nomount 상태로 올린 후 pfile 생성

spfile 경로는 filesystem의 경우 $ORACLE_HOME/dbs , ASM system의 경우 [+DATADG]/[SID]/PARAMETERFILE 아래에 있습니다.

$ sqlplus / as sysdba
SQL> startup nomount

SQL> create pfile='/home/oracle/dba/ysbae/init.ora' from spfile='+DG_DATA01/dbarac/PARAMETERFILE/spfile.291.1103218809'

File created.

 

2)pfile 수정

$vi /home/oracle/dba/ysbae/init.ora
AS-IS
*.log_archive_dest='/arch/DBARAC'

TO-BE
#*.log_archive_dest='/arch/DBARAC' --주석 처리해서 DB가 해당 파라미터를 못 읽게 함

 

3)pfile로 DB를 nomount까지 올린 후 spfile 생성

pfile로 nomount

$sqlplus / as sysdba

SQL> startup nomount pfile='/home/oracle/dba/ysbae/init.ora'

spfile 재생성

SQL> create spfile from pfile='/home/oracle/dba/ysbae/init.ora';

File created.


SQL> shutdown immediate

 

4)DB open

asm system의 경우에는 OS level에서 srvctl 명령어로 DB를 open 할 수 있습니다.

SQL> startup

or

$srvctl start database -d [db명]

 

반응형

댓글