본문 바로가기
Oracle/이벤트

ORA-00257: Archiver error 발생 재현 테스트

by 취미툰 2026. 4. 2.

안녕하세요.

 

운영에서발생한 에러에 대해서 분석하던 중 테스트환경에서 발생을 재현하기 위해 테스트한 내용을 정리하였습니다.

기존의 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

 

반응형

댓글