FRA (Flash Recovery Area)가 꽉 차서 데이터베이스에 로그인할 수 없을 경우 Oracle 데이터베이스를 다시 시작하는 방법 - WKB55931
Article number: 55931To English version
목적 또는 목표
FRA가 찼고 데이터베이스가 다운되면 Oracle 데이터베이스를 다시 시작합니다. "마운트" 상태의 데이터베이스를 다시 시작하는 것은 불가능하며 SQL*Plus를 사용하여 데이터베이스에 로그인하는 것도 불가능합니다.
환경
- Oracle 데이터베이스를 사용하는 모든 Waters 제품
절차
- 데이터베이스 init 매개 변수를 수정하여 플래시 복구 영역 크기의 두 배로 만듭니다.
- alert_sdms.log 파일에서 오류 메시지를 확인합니다.
- 경고 로그가 메모장에서 열 수 없을 만큼 큰 경우 이름을 바꿉니다.
- Oracle이 alertlog를 다시 생성하도록 시작 오류를 재현합니다.
- 오류 메시지는 플래시 복구 영역이 찼음을 나타냅니다. 해당 영역에 대한 경로, 매개 변수 이름 및 값을 제공합니다.
- 데이터베이스에서 init.ora 파일을 찾으십시오. 일반적으로 존재하지 않지만 SQL*Plus 프롬프트에서 "create pfile from spfile" 또는 Drive:\oracle\product\11.2.0\admin\sdms\pfile의 백업 사본에서 생성할 수 있습니다.
- 해당 파일을 복사합니다. db_recovery_file_dest_size가 현재 값의 두 배가 되도록 사본을 편집합니다.
- pfile의 db_recovery_file_dest 매개 변수가 active flash_recovery_area에서와 동일한지 확인합니다! pfile은 기존의 매개 변수에 값을 가질 수 있습니다.
- init.ora의 control_files 매개 변수가 spfile의 control_files 매개 변수와 일치하는지 확인합니다. 메모장에서 spfile을 열어 control_files의 현재 값을 가져옵니다. 이 값을 init.ora에 복사하고 init 파일의 구문과 일치시킵니다. 이렇게 하면 데이터베이스가 시작될 때 사용되지 않거나 존재하지 않는 컨트롤 파일에 대한 경로가 아닌 현재 컨트롤 파일이 사용됩니다.
- 파일의 이름을 initServiceName.ora로 바꿉니다. 여기서 ServiceName은 영향을 받는 데이터베이스 인스턴스의 서비스 이름입니다. 다음은 Waters 제품의 기본 서비스 이름입니다.
- NuGenesis LMS 및 SDMS: SDMS
- NuGenesis Stability: SLIM
- Empower 3: WAT12
- initServiceName.ora 파일을 다음 위치로 복사합니다.
- NuGenesis 8: Drive:\oracle\product\11.2.0\SDMS\database
- NuGenesis 9: Drive:\oracle\product\12.2.0\Oracle12cR2\database
- Empower 3: Drive:\Empower\Oracle12c\database
- 기존 SP*.ORA 파일의 이름을 .OLD로 변경합니다. ORacle은 spfile이 존재할 경우 init 파일을 사용하지 않습니다.
- 데이터베이스 인스턴스에 대한 Oracle Service를 다시 시작합니다.
- sqlplus의 "idle>"프롬프트에서 다음 명령을 실행합니다(또는 initServiceName.ora의 전체 경로를 지정합니다).
- startup pfile=initServiceName.ora
- 데이터베이스는 새 매개 변수를 사용하여 시작되며, 복구 영역 한계가 두 배가 되면 이제 열립니다.
- 명령을 사용하여 변경된 매개 변수를 영구 보존합니다.
- pfile에서 spfile을 생성합니다.
- 데이터베이스를 종료하고 시작하여 spfile로 시작하는지 확인합니다.
- alert_sdms.log 파일에서 오류 메시지를 확인합니다.
- FRA에서 이전 백업 세트를 삭제합니다.
- RMAN에 로그인하고 "crosscheck archivelog all" 명령을 실행합니다.
- 표준 NuGenesis 또는 Empower 데이터베이스 백업 절차가 제대로 수행되었는지 확인합니다.
추가 정보
데이터베이스에 로그인할 수 없는 경우(예: FRA 오류로 인해 데이터베이스 인스턴스가 종료되고 TNS 리스너에 등록되지 않은 경우), 1.7단계를 수행할 수 없습니다. 이 경우, 먼저 다음 명령으로 어떤 인스턴스가 TNS에 등록되었는지 확인합니다.
- lsnrctl 상태
인스턴스가 해당 목록에 없을 경우:
- \database 폴더에서 spfileServiceName.ora 파일을 삭제합니다.
- initServiceName.ora 파일을 \database 폴더로 복사합니다.
- 인스턴스를 다시 시작합니다.
spfile이 없을 경우, Oracle은 명령 줄에 어떤 것도 지정할 필요 없이 시작 시 인스턴스에 대한 init 파일을 사용합니다. 인스턴스는 TNS에 등록되고 tnsping 및 sqlplus를 통해 사용 가능해야 합니다. sqlplus를 사용하여 인스턴스에 SYSDBA로 로그인하고 위 절차의 나머지 단계를 진행합니다.
id55931, TNS listener