OS 환경 : Oracle Linux 8.7 (64bit)
DB 환경 : Oracle Database 19.27.0.0
에러 : ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated
rac환경에서 아카이브로그 모드로 변경하려할때 발생한 에러
log_archive_~ 파라미터 수정 후 db 종료
|
1
2
3
|
SQL> alter system set log_archive_dest = 'location=/oracle/app/oracle/arch' scope=spfile;
SQL> alter system set log_archive_format = 'ORA19DB_%t_%s_%r.arc' scope=spfile;
$ srvctl stop database -d ORA19DB
|
db mount로 기동
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$ srvctl start database -d ORA19DB -o mount
PRCD-1332 : failed to start database ORA19DB
PRCR-1079 : Failed to start resource ora.ora19db.db
CRS-5017: The resource action "ora.ora19db.db start" encountered the following error:
ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated
ORA-07286: sksagdi: cannot obtain device information.
Linux-x86_64 Error: 2: No such file or directory
. For details refer to "(:CLSN00107:)" in "/oracle/app/oracle/diag/crs/ora19rac2/crs/trace/crsd_oraagent_oracle.trc".
CRS-5017: The resource action "ora.ora19db.db start" encountered the following error:
ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated
ORA-07286: sksagdi: cannot obtain device information.
Linux-x86_64 Error: 2: No such file or directory
. For details refer to "(:CLSN00107:)" in "/oracle/app/oracle/diag/crs/ora19rac1/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.ora19db.db' on 'ora19rac2' failed
CRS-2632: There are no more servers to try to place resource 'ora.ora19db.db' on that would satisfy its placement policy
CRS-2674: Start of 'ora.ora19db.db' on 'ora19rac1' failed
|
에러 발생
해결 방법 : pfile 생성 후 아카이브 파라미터 설정시 log_archive_dest를 ''(null)로 같이 설정 및 log_archive_dest_1 설정
pfile 생성 후 아카이브 파라미터 설정시 log_archive_dest를 ''(null)로 같이 설정 및 log_archive_dest_1 설정
spfile 경로 확인
|
1
2
|
$ srvctl config database -d ora19db | grep spfile
Spfile: +DATA/ORA19DB/PARAMETERFILE/spfile.282.1201189699
|
spfile을 바로 수정할수 없기때문에 pfile 생성
|
1
2
3
|
SQL> create pfile='?/dbs/initORA19DB1.ora' from spfile='+data/ora19db/PARAMETERFILE/spfile.282.1201189699';
File created.
|
pfile 수정
|
1
2
3
4
|
$ vi $ORACLE_HOME/dbs/initORA19DB1.ora
*.log_archive_dest = ''
*.log_archive_dest_1 = 'location=/oracle/app/oracle/arch'
*.log_archive_format = 'ORA19DB_%t_%s_%r.arc'
|
pfile로 기동 잘되는지 확인
|
1
2
3
4
5
6
7
8
9
|
SQL> startup mount pfile='initORA19DB1.ora';
ORACLE instance started.
Total System Global Area 3137338240 bytes
Fixed Size 8944512 bytes
Variable Size 704643072 bytes
Database Buffers 2415919104 bytes
Redo Buffers 7831552 bytes
Database mounted.
|
잘올라감
spfile 생성
|
1
2
3
|
SQL> create spfile='+DATA' from pfile='initORA19DB1.ora';
File created.
|
이후 재기동
|
1
2
|
$ srvctl stop database -d ORA19DB
$ srvctl start database -d ORA19DB -o mount
|
archivelog 모드 설정(양쪽 노드)
|
1
2
3
|
SQL> alter database archivelog;
Database altered.
|
db 오픈(양쪽 노드)
|
1
2
3
|
SQL> alter database open;
Database altered.
|
정상적으로 기동됨
원인 : 초기 아카이브로그 설정시 log_archive_dest_1이 아닌 log_archive_dest만 설정한뒤 기동하여 발생한 문제
초기 아카이브로그 설정시 아래와 같이 log_archive_dest_1이 아닌 log_archive_dest만 설정한뒤 기동하여 발생한 문제
|
1
2
|
SQL> alter system set log_archive_dest = 'location=/oracle/app/oracle/arch' scope=spfile;
SQL> alter system set log_archive_format = 'ORA19DB_%t_%s_%r.arc' scope=spfile;
|
재기동
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
$ srvctl stop database -d ORA19DB
$ srvctl start database -d ORA19DB -o mount
PRCD-1332 : failed to start database ORA19DB
PRCR-1079 : Failed to start resource ora.ora19db.db
CRS-5017: The resource action "ora.ora19db.db start" encountered the following error:
ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated
ORA-07286: sksagdi: cannot obtain device information.
Linux-x86_64 Error: 2: No such file or directory
. For details refer to "(:CLSN00107:)" in "/oracle/app/oracle/diag/crs/ora19rac2/crs/trace/crsd_oraagent_oracle.trc".
CRS-5017: The resource action "ora.ora19db.db start" encountered the following error:
ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated
ORA-07286: sksagdi: cannot obtain device information.
Linux-x86_64 Error: 2: No such file or directory
. For details refer to "(:CLSN00107:)" in "/oracle/app/oracle/diag/crs/ora19rac1/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.ora19db.db' on 'ora19rac2' failed
CRS-2632: There are no more servers to try to place resource 'ora.ora19db.db' on that would satisfy its placement policy
CRS-2674: Start of 'ora.ora19db.db' on 'ora19rac1' failed
|
에러 발생
처음부터 log_archive_dest가 아닌 log_archive_dest_1로 설정했다면 재기동이 잘되었겠지만
나의 경우 실수로 log_archive_dest를 사용했기때문에 에러가 발생함
참고로 테스트중 log_archive_dest 파라미터를 pfile에서 지우고 log_archive_dest_1을 설정했을때도 db가 정상적으로 기동되지 않았음
|
1
2
3
4
5
6
7
8
9
10
|
SQL> startup pfile='?/dbs/initORA19DB1.ora' mount;
ORA-10997: another startup/shutdown operation of this instance inprogress
ORA-09968: unable to lock file
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 1592749
또는
SQL> startup pfile='?/dbs/initORA19DB1.ora' mount;
ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated
ORA-07286: sksagdi: cannot obtain device information.
Linux-x86_64 Error: 2: No such file or directory
|
원래라면 이렇게 해도 잘올라와야 정상이지만 log_archive_dest를 null로 설정하면서 동시에 log_archive_dest_1을 설정해야 정상적으로 동작했음
이론상 말이안되긴 하지만 증상을 봤을때는 파라미터파일에는 해당정보가 없지만 어딘가에서 log_archive_dest를 설정했던 정보를 기억하고 가져오는게 아닐까 싶음
참조 :