시작시“ORA-03113 : 통신 채널의 파일 끝”


22

나는 여기, 오라클 지원 및 지난 3 일 동안 찾을 수있는 다른 곳의 게시물을 읽었 으며이 문제를 포기했습니다 ...

Oracle 데이터베이스가 정지되었습니다. 데이터베이스가 몇 시간 동안 종료 된 다음 종료되었습니다. 다시 시작되지 않습니다. 서버가 다시 시작되었습니다. 오라클이 다시 시작되었습니다. 단계별 : 시작 nomount 작동, 데이터베이스 마운트 작동 변경, 데이터베이스 열기 변경은 ORA-03113을 반환합니다. 이것은 네트워크를 통하지 않고 로컬 호스트에 있습니다. 머신에는 실행중인 방화벽이 없습니다.

이 ORA-03113 오류를 극복하는 방법에 대한 아이디어가 있습니까? 지난 4.5 시간 동안 인도에서 전화로 지원을 받았지만 아직 도움이 된 사람은 없습니다.


1
경고 로그와 ALTER DATABASE OPEN그 이후의 오류 에서 발췌 한 게시물 입니다.
Mindaugas Riauba

1
마지막으로 성공한 시작과 현재 실패한 시작 사이의 모든 경고 로그를 검색 (grep)하고이 기간 동안 ALTER SYSTEM SET을 검색하십시오. 누군가가 비표준 방식으로 일부 인스턴스 매개 변수를 변경했을 수 있습니다.
kubanczyk

답변:


35

공식 오라클 지원에서 몇 시간 동안 잘못된 지시를 한 후에, 나는 이것을 스스로 해결하고 고쳤습니다. 다른 사람 이이 문제를 겪을 경우를 대비하여 여기에 문서화하고 있습니다.

이 작업을 수행하려면 oracle 사용자 여야합니다.

$ su - oracle

1 단계 : 경고 로그를 확인해야합니다. 예상대로 / var / log에 없습니다. Oracle 로그 읽기 프로그램을 실행해야합니다.

$ adrci
ADRCI: Release 11.2.0.1.0 - Production on Wed Sep 11 18:27:56 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"
adrci>

ADR베이스를 확인하십시오. 그것은 설치가 아닙니다. 사용중인 주택에 연결할 수 있도록 주택을 확인해야합니다.

adrci> show homes
ADR Homes:
diag/rdbms/cci/CCI
diag/tnslsnr/cci/listener
diag/tnslsnr/cci/start
diag/tnslsnr/cci/reload

CCI는 집입니다. 설정하십시오.

adrci> set home diag/rdbms/cci/CCI
adrci>

이제 경고 로그를 볼 수 있습니다. / var / log에 있으면 로그를 쉽게 파싱 할 수있어 매우 좋습니다. 원하는 것을 멈추고이 인터페이스를 다루십시오. 적어도 꼬리를 낼 수 있습니다 (스크롤 백 버퍼가 있기를 바랍니다).

adrci> show alert -tail 100

오류가 나타날 때까지 뒤로 스크롤하십시오. FIRST 오류가 필요합니다. 첫 번째 오류 이후의 오류는 첫 번째 오류로 인한 것일 수 있습니다. 필자의 경우 첫 번째 오류는 다음과 같습니다.

ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 100.00% used, and has 0 remaining bytes available.

거래로 인해 발생합니다. Oracle은 사용하도록 설계되지 않았습니다. 많은 양의 데이터를 푸시하면 트랜잭션 로그가 저장됩니다. 복구 파일 영역으로 이동합니다. 일단 가득 차면 (이 경우 50GB가 가득 참). 그런 다음 오라클은 죽습니다. 설계 상 문제가 발생하면 Oracle은 종료하여 응답합니다.

적절한 솔루션과 빠르고 더러운 솔루션이라는 두 가지 솔루션이 있습니다. 빠르고 더러운 것은 db_recovery_file_dest_size를 늘리는 것입니다. 먼저 adrci를 종료하십시오.

adrci> exit

이제 데이터베이스를 열지 않고 sqlplus로 이동하여 마운트하십시오 (데이터베이스를 마운트하지 않고도이 작업을 수행 할 수는 있지만 어쨌든 마운트하십시오).

$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 11 18:40:25 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> startup mount

이제 내 경우에는 현재 db_recovery_file_dest_size를 75G로 늘릴 수 있습니다.

SQL> alter system set db_recovery_file_dest_size = 75G scope=both

이제 종료하고 다시 시작할 수 있으며 이전 오류가 사라집니다.

올바른 수정은 복구 파일을 제거하는 것입니다. SQLPLUS 또는 ADRCI가 아닌 RMAN을 사용하여이를 수행합니다.

$ rman
Recovery Manager: Release 11.2.0.1.0 - Production on Wed Sep 11 18:45:11 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
RMAN> backup archivelog all delete input;

당신이 가지고 있다면 RMAN-06171: not connected to target database, rman target /그냥 대신 사용하려고rman

오래 기다리면 아카이브 공간 (이 공간을 모두 사용하고 있던)이 사라집니다. 따라서 데이터베이스를 종료 / 시동하고 업무를 다시 시작할 수 있습니다.


Oracle Linux 서버에서 adrci 명령을 찾을 수 없습니다. 설치하려면 어떻게합니까? 감사.

3
감사! 작동합니다. 그러나 rman에 대한 올바른 명령은 다음과 같습니다. export ORACLE_SID=my_oracle//rman target /

내 2 센트를 추가하려면-이 기사에서 RMAN아카이브 영역을 지우고 다른 것들을 지우는 데 사용할 수있는 명령이 있습니다 . DB가 어떤 이유로 (마지막 비트) 열려있는 경우 복원 지점도 지워 지므로주의하십시오
g00dy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.