설명
ORA-01623 오류는 현재 사용 중인 로그 파일을 삭제하려고 시도할 때 발생합니다. 오라클 데이터베이스는 로그 파일이 활성 상태인 동안에는 이를 삭제하거나 제거할 수 없습니다.
원인
이 오류의 원인은 다음과 같습니다:
- 현재 활성 상태인 (즉, 데이터베이스에 의해 사용 중인) 리두 로그 파일을 삭제하려고 할 때.
- 쓰레드에 할당된 로그 파일 중 현재 사용되고 있는 로그 파일을 삭제하려고 했을 때.
에러가 발생하는 예시
SQL> ALTER DATABASE DROP LOGFILE '/u01/oradata/db/redo01.log';
-- 현재 활성 상태인 redo 로그 파일을 삭제하려고 하면 다음과 같은 오류가 발생합니다.
ORA-01623: 로그 '/u01/oradata/db/redo01.log'는 쓰레드 1에 대한 현 로그임 - 삭제할 수 없습니다.
해결방법
이 오류를 해결하기 위한 조치는 다음과 같습니다:
- 오류 메시지에 나온 로그 파일이 더 이상 활성 상태가 아닌지 확인하세요.
- 로그 파일이 현재 리두 로그 그룹에 속해 있다면, 다른 로그 그룹으로 전환하고 나서 삭제를 시도하세요.
- 다음 명령어를 사용하여 로그 스위치를 수행할 수 있습니다:
SQL> ALTER SYSTEM SWITCH LOGFILE;
-- 이후 로그 파일 삭제를 다시 시도합니다.
주의사항
리두 로그 파일을 삭제하거나 변경하기 전에는 항상 데이터베이스가 해당 파일을 사용 중이지 않은지 확인해야 합니다. 로그 파일을 삭제하려고 할 때는 데이터베이스의 아카이브 모드 및 백업 상태를 고려하여 주의 깊게 작업을 수행해야 합니다. 잘못된 로그 파일의 삭제는 데이터베이스의 복구 능력에 심각한 영향을 줄 수 있습니다.