데이터파일(datafile)



  • 모든 Oracle 데이터베이스는 하나 이상의 물리적 데이터 파일을 가집니다. 데이터베이스의 데이터 파일은 데이터베이스의 모든 데이터를 가집니다. 테이블이나 인덱스 같은 데이터베이스의 논리적 구조는 데이터베이스를 위해 할당된 데이터 파일에 물리적으로 저장됩니다.

  • 변경되거나 새로운 데이터는 데이터 파일에 즉시 쓸 필요는 없습니다. 디스크 출력을 줄이고 데이터 베이스 성능 향상을 위해 변경된 내용만 파일에 쓰여지면, 데이터 블록의 데이터는 메모리 내에 남겨 두었다가, 적절한 시간에 데이터 파일에 쓰기는 RDMBS 백그라운드 프로세스인 DBWR가 물리적인 I/O를 일으킵니다.


  • 데이터 파일의 특성은 다음과 같습니다.


    • 데이터 파일은 하나의 데이터베이스에만 관련 됩니다.

    • 데이터 파일은 데이터베이스의 영역이 모자랄 때 자동으로 확장할 수 있는 특성이 있습니다.

    • 하나 이상의 데이터 파일이 데이터베이스 저장 영역의 논리적 단위인 테이블 스페이스를 형성합니다.

  • 데이터 파일의 데이터는 데이터베이스가 정상적으로 작동하는 동안 언제든지 읽을 수 있으며 Oracle의 메모리 캐시에 저장됩니다. 예를 들어, 사용자가 데이터베이스의 테이블에 있는 일부 데이터를 액세스하고자 할 때 요구한 정보가 메모리 캐시에 없다면 해당 데이터 파일에서 읽어 메모리에 저장할 수 있습니다.


  • 수정된 데이터나 새로운 데이터를 데이터 파일에 즉시 쓸 필요는 없습니다. 디스크 액세스량을 줄이고 성능을 향상시키려면 데이터를 메모리에 저장했다가 적합한 데이터 파일에 한꺼번에 써야 하는데 이는 Oracle의 DBWn 백그라운드 프로세스가 결정합니다.

       


    컨트롤 파일(Control file)



  • 모든 Oracle 데이터베이스는 제어 파일을 가집니다. 제어 파일에는 데이터베이스의 물리적 구조를 지정하는 입력 항목이 있습니다. 예를 들어, 다음과 같은 정보가 있습니다.


    • 데이터베이스 이름

    • 데이터베이스의 데이터 파일과 리두 로그 파일의 이름 및 위치

    • 데이터베이스 생성 시간 (Time Stamp) 기록

  • 데이터베이스가 오픈 때 마다, 제어 파일은 데이터 파일 처리를 위해 반드시 오픈 되어야 하며 데이터베이스 파일과 리두 로그 파일을 지정하기 위해 사용됩니다. 만일 물리적인 데이터베이스 구성이 변경된다면 (즉, 새로운 데이터 파일이나 리두 로그파일이 생성되는 경우), 제어 파일은 자동으로 Oracle RDBMS에 의해 변경된 내용이 수정됩니다. 또한, 데이터베이스 복구가 필요 할 때도 제어 파일이 사용됩니다.


  • 제어 파일을 장애로부터 보호하기 위해, Oracle RDBMS는 복수개의 제어 파일 사용을 미러링 방식으로 허용합니다. 즉 두개 이상의 제어 파일 복사본을 서로 다른 디스크에 둘 수 있습니다.

       


    리두로그 파일(redolog file)


  • 모든 Oracle 데이터베이스는 하나 이상의 리두 로그 파일 세트을 갖습니다. 리두 로그의 가장 중요한 기능은 모든 데이터베이스 변경 정보를 기록하는 일입니다. 모든 데이터베이스의 변경 사항은 리두 로그에 저장됩니다. 만약 수정된 내용을 데이터 파일에 반영하는데 실패하더라도, 변경사항은 리두로그 파일에서 얻을 수 있기 때문에, 작업내용은 결코 유실되지 않습니다.

  • 리두 로그 파일은 데이터베이스를 장애로부터 보호하기 위해 필수적입니다. 리두 로그 파일이 포함된 장애로부터 보호하기 위해, Oracle RDBMS는 복수개의 리두로그 파일사용을 미러링 방식으로 허용합니다. 즉 두개 이상의 리두 로그 파일을 서로 다른 디스크에 둘 수 있습니다.


  • 리두 로그 파일안의 정보는 시스템이나 미디어 장애시 복구를 위해서만 사용됩니다. 예를들어, 만일 이상 전압으로 인해 데이터베이스가 다운이 되었다면 메모리에 있던 데이터베이스 데이터는 데이터 파일에 미처 써지지 않았을 수도 있습니다. 그러나 잃어버린 데이터는 전원이 정상대로 공급되어 데이터베이스가 재기동 될 때 복구됩니다. Oracle RDBMS는 전원이 끊어질 때 최종의 리두 로그 파일로 데이터베이스의 데이터 파일을 자동적으로 복구합니다.

       


    아카이브 로그 파일(archived log file)



  • 리두로그 파일을 자동적으로 archiving 할 수 있는 기능이 제공됩니다. 오라클은 데이터베이스가 ARCHIVELOG 모드일 때 로그파일을 자동적으로 archiving 합니다. 물리 복구가 필요한 경우, 사용됩니다.

       


    파라미터 파일(parameter file)


  • 데이터베이스와 인스턴스에 대한 파라메터들을 기록/관리하는 파일입니다.


  • 오라클은 초기화 파라미터들을 동적으로 변경/적용할 수 있는 서버 파라미터(SPFILE)를 사용할 것을 권장합니다.

       


    경고 및 추적로그 파일(alert, trace log file)


  • 서버와 백그라운드 프로세스들은 관련 추적파일을 분류하여 생성합니다. 내부 에러가 발생했을 때, 관련정보를 추적파일에 기록합니다.

  • 추적파일의 정보는 DBA들에게 유용하나, 대부분 오라클 기술지원을 담당하는 부서에서 필요한 정보입니다.

  • Application이나 오라클 인스턴스를 tuning 하기위해 사용되기도 합니다.


  • Automatic Diagnostic Repository(ADR) 개념이 소개되었으며, DIAGNOSTIC_DEST라는 파라미터에 의해 기본 디렉토리가 정해집니다. 기존 alert.log의 경우 XML 형태의 log.xml이라는 파일도 제공하고, 문제(incident) 발생시 관련 정보를 자동으로 패키징하는 Incident Packaging Service(IPS)를 통해 지원 부서와의 간편하고 정확한 정보 공유 수단을 제공합니다.

       


    백업 파일(backup file)



  • 데이터파일을 restore 한다는 것은 백업파일로 대체한다는 것입니다. 일반적으로, 미디어 장애나 사용자의 실수가 원본 데이터파일을 손상시켰을 때 restore 작업을 수행합니다.

       

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다