안녕하세요.
운영에서발생한 에러에 대해서 분석하던 중 테스트환경에서 발생을 재현하기 위해 테스트한 내용을 정리하였습니다.
기존의 ORA-00257 에러는 FRA영역이나 archive 디렉토리의 영역이 full일때 발생하였었는데, 이번 case는 archive영역과 FRA영역이 충분한대도 발생하였습니다.
(제가 Full 인경우만 발생하는 줄 알았는데.. 이부분에서 착오가 있었고 원인분석이 지체되었습니다)
발생 에러
클라이언트 세션에서 접속 시 발생하였습니다.
ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.
원인
어떠한 이유로 아카이브 프로세스가 Hang이 걸리게 되면 해소할 때까지 해당 에러를 뱉으며 접속이 불가능합니다.
해결
해소는 Hang이 걸린 이유(디렉토리 full , 파일 쓰기)를 해결하면 자연스럽게 해소가 되거나, Hang 걸린 이유 해결 후 강제적으로 archive log를 발생시켜보면서 잘 쓰는것을 확인하며 해소할 수 있습니다.
테스트환경
RAC 12cR2
아카이브 경로가 NFS 등 공유파일시스템영역에서 저장중인 환경에서 재현가능
1)1번 2번의 archive용 공유디렉토리 확인
$ df -g
Filesystem GB blocks Free %Used Iused %Iused Mounted on
10.33.3.161:/ora_work/arch 149.00 88.67 41% 2177 1% /ora_work/arch <------------------설정완료된것
파일을 만들어서 1번 2번에서 잘 생성되는지 확인
$ touch ysbae.txt
#1번
h$ ls
ysbae.txt
#2번
$ ls
ysbae.txt
#DB에서 아카이브 경로 변경
alter system set log_archive_dest_1 = 'LOCATION=/ora_work/arch' scope=BOTH ;
alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
AIX용 공유디렉토리 설정은 아래 접은글을 확인하세요.
1번 root
mkdir -p /ora_work/arch
chmod 777 /ora_work/arch
chown oracle:dba /ora_work/arch
mknfsexp -d /ora_work/arch -t rw -c 10.33.3.162 -B
설정 확인방법
# exportfs
/ora_work/arch -rw,access=10.33.3.162
2번 root
mkdir -p /ora_work/arch
chmod 777 /ora_work/arch
chown oracle:dba /ora_work/arch
mount -v nfs -o rw,bg,hard,intr,proto=tcp,noac 10.33.3.161:/ora_work/arch /ora_work/arch
2)
2번세션(2번node)에서 일정시간마다 log switch를 하여 아카이브로그파일을 생성하는 PL/SQL 실행
set serveroutput on
begin
for i in 1..10 loop
for i in 1..5 loop
execute immediate 'insert into ysbae.dummy_test select * from dba_objects';
commit;
dbms_lock.sleep(0.1);
end loop;
execute immediate 'alter system switch logfile';
end loop;
exception
when others then
dbms_output.put_line(SQLCODE);
dbms_output.put_line(SQLERRM);
end;
/
begin
for i in 1..50 loop
execute immediate 'insert into ysbae.dummy_test select * from dba_objects';
commit;
execute immediate 'alter system switch logfile';
dbms_lock.sleep(0.1);
end loop;
end;
/
3)
1번node에서 해당 공유디렉토리 영역의 권한을 000으로 변경
#1번 root에서 수행
chmod 000 /ora_work/arch
d--------- 2 oracle dba 4096 Mar 27 09:29 arch
4)alert log에서 에러발생하는것을 확인
krsd_check_stuck_arch: stuck archiver: insufficient local LADs
krsd_check_stuck_arch: stuck archiver condition declared
이부분이 발생하여 아카이브 프로세스가 Hang이 걸린것을 확인할 수 있습니다.
2026-03-27T10:26:20.825519+09:00
Direct NFS: write FAILED 70
2026-03-27T10:26:20.869149+09:00
ARC2: Encountered disk I/O error 19502
2026-03-27T10:26:20.870094+09:00
ARC2: Closing local archive destination LOG_ARCHIVE_DEST_1 '/ora_work/arch/2_3325_1174735061.arc' (error 19502) (dbarac2)
2026-03-27T10:26:20.871075+09:00
Errors in file /oracle/db/base/diag/rdbms/dbarac/dbarac2/trace/dbarac2_arc2_37093768.trc:
ORA-17500: ODM err:KGNFS WRITE FAIL:Stale File handle
ORA-19502: write error on file "/ora_work/arch/2_3325_1174735061.arc", block number 96256 (block size=512)
2026-03-27T10:26:20.872238+09:00
Errors in file /oracle/db/base/diag/rdbms/dbarac/dbarac2/trace/dbarac2_arc2_37093768.trc:
ORA-19502: write error on file "/ora_work/arch/2_3325_1174735061.arc", block number 96256 (block size=512)
ORA-17500: ODM err:KGNFS WRITE FAIL:Stale File handle
ORA-19502: write error on file "/ora_work/arch/2_3325_1174735061.arc", block number 96256 (block size=512)
ARC2: I/O error 19502 archiving log 3 to '/ora_work/arch/2_3325_1174735061.arc'
krsd_check_stuck_arch: stuck archiver: insufficient local LADs
krsd_check_stuck_arch: stuck archiver condition declared
5)추가세션 접속시도
에러가 발생하는 것을 확인할 수 있습니다.
$ sqlplus ysbae/kyobo11!
SQL*Plus: Release 12.2.0.1.0 Production on Fri Mar 27 17:35:37 2026
Copyright (c) 1982, 2017, Oracle. All rights reserved.
ERROR:
ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.
6)디렉토리 권한을 다시 원복(777) 후 해소되는것을 확인
#1번 root에서 수행
chmod 777 /ora_work/arch
drwxrwxrwx 2 oracle dba 4096 Mar 27 09:29 arch
krsd_check_stuck_arch: stuck archiver condition cleared
clear되었다는 메세지가 찍히며 이 이후로는 정상접속 가능합니다.
2026-03-27T10:10:14.358543+09:00
krsd_check_stuck_arch: stuck archiver condition cleared
2026-03-27T10:10:14.729768+09:00
Archived Log entry 8673 added for T-2.S-3313 ID 0x66ac0b8f LAD:1
'Oracle > 이벤트' 카테고리의 다른 글
| ORA-04021 timeout occurred while waiting to lock object %s (0) | 2025.07.17 |
|---|---|
| ORA-20005: object statistics are locked (stattype = ALL) (0) | 2024.05.30 |
| ORA-04045: errors during recompilation/revalidation (0) | 2024.05.09 |
| ORA-600[qertqiFetch:Already Done] (0) | 2024.05.03 |
| ORA-00600: [kkqcscorcbk: Correlated String Not Found] (0) | 2024.01.16 |
댓글