메인 콘텐츠로 건너뛰기
Waters Korea

FRA (Flash Recovery Area)가 꽉 차서 데이터베이스에 로그인할 수 없을 경우 Oracle 데이터베이스를 다시 시작하는 방법 - WKB55931

Article number: 55931To English version

목적 또는 목표

FRA가 찼고 데이터베이스가 다운되면 Oracle 데이터베이스를 다시 시작합니다. "마운트" 상태의 데이터베이스를 다시 시작하는 것은 불가능하며 SQL*Plus를 사용하여 데이터베이스에 로그인하는 것도 불가능합니다.

환경

  • Oracle 데이터베이스를 사용하는 모든 Waters 제품

절차

  1. 데이터베이스 init 매개 변수를 수정하여 플래시 복구 영역 크기의 두 배로 만듭니다.
    1. alert_sdms.log 파일에서 오류 메시지를 확인합니다.
      • 경고 로그가 메모장에서 열 수 없을 만큼 큰 경우 이름을 바꿉니다.
      • Oracle이 alertlog를 다시 생성하도록 시작 오류를 재현합니다.
    2. 오류 메시지는 플래시 복구 영역이 찼음을 나타냅니다. 해당 영역에 대한 경로, 매개 변수 이름 및 값을 제공합니다.
    3. 데이터베이스에서 init.ora 파일을 찾으십시오. 일반적으로 존재하지 않지만 SQL*Plus 프롬프트에서 "create pfile from spfile" 또는 Drive:\oracle\product\11.2.0\admin\sdms\pfile의 백업 사본에서 생성할 수 있습니다.
    4. 해당 파일을 복사합니다. 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 파일의 구문과 일치시킵니다. 이렇게 하면 데이터베이스가 시작될 때 사용되지 않거나 존재하지 않는 컨트롤 파일에 대한 경로가 아닌 현재 컨트롤 파일이 사용됩니다.
    5. 파일의 이름을 initServiceName.ora로 바꿉니다. 여기서 ServiceName은 영향을 받는 데이터베이스 인스턴스의 서비스 이름입니다. 다음은 Waters 제품의 기본 서비스 이름입니다.
      • NuGenesis LMS 및 SDMS: SDMS
      • NuGenesis Stability: SLIM
      • Empower 3: WAT12
    6. 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
    7. 기존 SP*.ORA 파일의 이름을 .OLD로 변경합니다. ORacle은 spfile이 존재할 경우 init 파일을 사용하지 않습니다.
    8. 데이터베이스 인스턴스에 대한 Oracle Service를 다시 시작합니다.
    9. sqlplus의 "idle>"프롬프트에서 다음 명령을 실행합니다(또는 initServiceName.ora의 전체 경로를 지정합니다).
      • startup pfile=initServiceName.ora
      • 데이터베이스는 새 매개 변수를 사용하여 시작되며, 복구 영역 한계가 두 배가 되면 이제 열립니다.
      • 명령을 사용하여 변경된 매개 변수를 영구 보존합니다.
        • pfile에서 spfile을 생성합니다.
      • 데이터베이스를 종료하고 시작하여 spfile로 시작하는지 확인합니다.
  2. FRA에서 이전 백업 세트를 삭제합니다.
  3. RMAN에 로그인하고 "crosscheck archivelog all" 명령을 실행합니다.
  4. 표준 NuGenesis 또는 Empower 데이터베이스 백업 절차가 제대로 수행되었는지 확인합니다.

추가 정보

데이터베이스에 로그인할 수 없는 경우(예: FRA 오류로 인해 데이터베이스 인스턴스가 종료되고 TNS 리스너에 등록되지 않은 경우), 1.7단계를 수행할 수 없습니다. 이 경우, 먼저 다음 명령으로 어떤 인스턴스가 TNS에 등록되었는지 확인합니다.

  • lsnrctl 상태

인스턴스가 해당 목록에 없을 경우:

  1. \database 폴더에서 spfileServiceName.ora 파일을 삭제합니다.
  2. initServiceName.ora 파일을 \database 폴더로 복사합니다.
  3. 인스턴스를 다시 시작합니다.

spfile이 없을 경우, Oracle은 명령 줄에 어떤 것도 지정할 필요 없이 시작 시 인스턴스에 대한 init 파일을 사용합니다. 인스턴스는 TNS에 등록되고 tnsping 및 sqlplus를 통해 사용 가능해야 합니다. sqlplus를 사용하여 인스턴스에 SYSDBA로 로그인하고 위 절차의 나머지 단계를 진행합니다.

id55931, TNS listener