본문 바로가기
ORACLE/아키텍처

데이터베이스의 구조

by 딘스톤 2023. 9. 13.

I. 오라클 데이터베이스

II. 데이터베이스 구성

III. 데이터베이스 구조

 1) Instance구조

        • 메모리 구조

               ৹ SGA

                    ① Shared Pool

                    ② Database Buffer Cache

                    ③ KEEP 버퍼 풀 및 RECYCLE 버퍼 풀

                    ④ Redo Log Buffer

                    ⑤ Large Pool

                    ⑥ Java Pool 및 Streams Pool

               

               ৹ PGA 

                    ① Stack Space

                    ②  UGA

                            ▫ User Session Data

                            ▫ Cursor State

                            ▫ Sort Area

                            ▫ Dedicated Server

                            ▫ Shared Server

        • 프로세스 구조 

               ৹ 서버 프로세스

               ৹ 백그라운드 프로세스

                    ① DBWn(데이터베이스 기록자 프로세스)

                    ② LGWR(로그 기록자 프로세스)

                    ③ CKPT(체크포인트 프로세스)

                    ④ SMON(시스템 모니터 프로세스)

                    ⑤ PMON(프로세스 모니터 프로세스)

                    ⑥ RECO(복구자 프로세스)

                    ⑦ ARCn(아카이버 프로세스)

 

 2) Database 저장 영역 구조

        • Data File

        • Comtrol File

        • Prameter File

        • Password File

        • 백업 파일

        •  온라인 리두 로그 파일

        • 아카이브 된 리두 로그 파일

        • Trace file

        • Alert Log File

 

 3) 논리적 및 물리적 데이터베이스 구조

        • 데이터베이스, 테이블스페이스 및 데이터 파일

        • 테이블스페이스

        • 데이터 블록

        • Extent

        • 세그먼트

               ৹ 데이터 세그먼트

               ৹ 인덱스 세그먼트

               ৹ 언두 세그먼트

               ৹ 임시 세그먼트

 

IV. ASM ( 자동 저장 영역 관리)

 1) ASM

 2) ASM 저장 영역 구성 요소


I. 오라클 데이터베이스

• Database란 데이터를 저장하는 보관소를 의미합니다

• Oracle은 DataBase Management System(DBMS)이라는 분야의 한 종류입니다

• Oracle RDBMS(관계형 데이터베이스 관리 시스템)는 다중 유저 환경에서 많은 양의 데이터를 안정적으로 관리하여

   다수의 유저가 동일한 데이터에 동시에 액세스 할 수 있도록 합니다.

II. 데이터베이스 구성

• 각 데이터베이스 Instance는 단 한 개의 데이터베이스와만 연관됩니다

• 동일 서버에 데이베이스가 여러 개 있는 경우 각 데이터베이스마다 별개의 고유한 데이터베이스 Instance가 존재합니다

• 데이터베이스 Instance는 공유될 수 없습니다.

• RAC(Real Applications Cluster) 데이터 베이스에는 일반적으로 여러 개별 서버에 동일 공유 데이터베이스에 대한

  여러 Instance가 포함됩니다

• RAC 모델에서는 동일한 데이터베이스가 각 RAC Insatance와 연관되어 하나의 Instance에 대해 최대 하나의 데이터베이스만

  연관시켜야  하는 필요조건을 충족시킵니다.

 

III. 데이터베이스 구조

1) Instance의 구조

  • 인스턴스는 메모리 영역과 백그라운드 프로세스 영역으로 나뉘어 있습니다

  • 메모리 영역은 공유메모리 영역인 SGA와 프로세스 전용 메모리 영역인 PGA로 나뉘어 있습니다

  • 백그라운드 프로세스는 공유 메모리 관리등 내부적인 작업을 수행하여 서버 프로세스를 지원하고, DBWn,

     CKPT, SMON, PMON, LGWR 등이 있습니다.

• 메모리 구조

• 오라클 데이터베이스는 다양한용도로 메모리 구조를 생성 및 사용하는데 메모리에는 실행 중인 프로그램 코드,

  유저 간에 공유되는 데이터 및 각 연결된 유저의 전용 데이터 영역이 저장됩니다. 

 

   ৹ SGA 

        • 하나의 오라클 데이터베이스 Instance의 데이터 및 제어 정보를 포함하는 공유 메모리 구조(SGA 구성요소)의 그룹입니다

        • SGA는 모든 서버 및 백그라운드 프로세스에서 공유됩니다.  

           ① Shared Poo

              

                   • SGA의 Shared Pool 부분에는 라이브러리 캐시, 데이터 딕셔너리 캐시, SQL Query 결과 캐시, PL/SQL 함수 결과

                      캐시, 병렬 실행 메시지의 버퍼 및 제어 구조가 포함됩니다

                   • 데이터 딕셔너리는 데이터베이스, 해당 구조 및 유저에 대한 참조 정보를 포함하는 데이터베이스 테이블 및

                      뷰 모음입니다.

                   • SQL문 구문 분석 중에 데이터 딕셔너리를 자주 액세스하고 지속적으로 작업을 수행하려면 이와 같은 액세스가

                      반드시 필요합니다.

                   • 데이터베이스가 데이터 딕셔너리에 자주 액세스하므로 메모리에 있는 두 곳의 특수한 위치에 딕셔너리 데이터를

                     보관하도록 지정하는데 그중 한 영역이 데이터 딕셔너리 캐시이며, 전체 데이터 블록을 보관하는 버퍼 대신

                     데이터를 행으로 보관하므로 행 캐시라고 도 합니다

                   • 딕셔너리 데이터를 보관하는 메모리의 다른 한 영역은 라이브러리 캐시입니다

                   • User Process는 데이터 딕셔너리 정보 액세스를 위해 이 두 캐시를 공유합니다

                   • 데이터베이스에서 실행하는 각 SQL문을 공유 SQL 영역으로 나타내고, 두 유저가 같은 SQL문을 실행하는 경우

                      해당 유저에 대해 공유 SQL 영역을 재사용합니다.

                   • 공유 SQL 영역에는 지정된 SQL 문에 대해 구문 분석 트리 및 실행 계획이 포함됩니다.

                   • 오라클 데이터베이스는 로컬 변수, Global 변수, 패키지 변수 (패키지 인스턴스)를 포함한 프로그램 단위를

                      실행하는 세션 및 SQL 실행을 위한 버퍼와 관련된 값을 보관하기 위한 전용 영역을 할당합니다.

                   • 여러 유저가 동일한 프로그램 단위를 실행하는 경우 모든 유저에게 단일 공유 영역이 사용되며, 모든 유저는

                      자신의 고유 세션에 특정된 값이 보관된 고유한 전용 SQL 영역의 개별 복사본을 유지 관리합니다

                   • Query 결과 및 Query 부분의 SQL Query 결과 캐시의 메모리에서 캐시에 저장될 수 있고, 데이터베이스가

                      캐시 된 결과를 사용하여 이러한 Query 및 Query 부분의 향후 실행을 수행할 수 있습니다.

                   • Shared Pool의 고정된 영역은 SGA에 대한 시작 오버헤드를 나타내고, 크기는 일반적으로 크기가 지정된

                      Shared Pool 또는 SGA에 비해 매우 작습니다.

       

           ② Database Buffer Cache

                   • 데이터 파일에서 읽거나 읽기 일관성 모델을 만족시키기 위해 동적으로 생성된 블록 이미지를 보관하는 SGA의

                     일부로 Instance에 동시에 연결하는 모든 유저는 데이터베이스 버퍼 캐시에 대한 액세스를 공유합니다

                   • 특정 데이터를 처음 사용해야 하는 경우 데이터베이스 버퍼 캐시의 데이터를 검색하고 프로세스에서 캐시에 이미

                     있는 데이터를 발견하는 경우 메모리에서 데이터를 직접 읽어올 수 있습니다

                   • 프로세스가 캐시의 데이터를 발견하지 못하면 데이터 액세스를 하기 전에 데이터 블록을 디스크의 데이터 파일에서

                     캐시의 버퍼로 복사해야 합니다.

                   • 데이터베이스 버퍼 메모리에 데이터가 있는 경우 디스크에서 데이터를 읽어 오는 것보다 훨씬 빠릅니다.           

                   • 캐시의 버퍼는 LRU(Lest Recently Used) List와 접근 횟수의 조합을 사용하는 조합을 사용하는 복합 알고리즘에

                     의해 관리되고, LRU는 디스크 액세스를 최소화하기 위해 최근에 사용된 블록이 메모리에 유지되도록 보장합니다.           

 

         ③  KEEP 버퍼 풀 및 RECYCLE 버퍼 풀

                • KEEP 버퍼 풀은 LRU가 일반적으로 버퍼를 보유하는 것보다 오랫동안 메모리에 버퍼를 보유하도록 설계되었습니다

                • RECYCLE 버퍼 풀은 일반적으로 LRU가 버퍼를 비우는 것보다 빠르게 버퍼를 메모리에서 비울 수 있도록 설계되었습

                  니다.

 

         ④ Redo Log Buffer

                • 데이터베이스에 대한 변경 사항 관련 정보가 포함된 SGA의 순환 버퍼입니다

                • 리두 항목은 DML, DDL 또는 내부 작업에 의해 데이터베이스에 수행된 변상 사항을 재생성하는 데 필요한

                  정보를 포함합니다

                • 필요한 경우 리두 항목은 데이터베이스 Recovery에 사용됩니다

                • 서버 프로세스가 버퍼 캐시에 변경 사항을 적용할 때 리두 항목이 생성되고 SGA의 리두 로그 버퍼에 기록됩니다

                • 로그 기록자 백그라운드 프로세스는 리두 로그 버퍼를 디스크의 활성 리두 로그 파일에 기록합니다.

 

           ⑤ Large Pool

              • DBA는 다음을 위한 대규모 메모리 할당을 제공하기 위해 Large Pool이라는 선택적 메모리 영역을 구성할 수 있습니다

                    ▫ Shared Server 및 Oracle XA 인터페이스용 세션 메모리 

                    ▫ I/O 서버 프로세스

                    ▫ 오라클 데이터베이스 백업 및 복원 작업

                    ▫ Parallel Query 작업

                    ▫ Advanced Queuing 메모리 테이블 저장 영역

              • Shared Server, Oracle XA 또는 Parallel Query 버퍼에 대해 Large Pool에서 세션 메모리를 할당함으로써

                 오라클 데이터베이스는 기본적으로 공유 SQL을 캐시에 저장하는데 Shared Pool을 사용할 수 있으며,

                 공유 SQL 캐시를 축소하면 발생하는 성능 오버해드를 방지할 수 있습니다

                • 백업 및 복원 작업, I/O 서버 프로세스 및 병렬 버퍼에 사용되는 메모리는 크기가 수백 KB인 버퍼에서 할당됩니다

                • Large Pool 은 LRU List로 관리되지 않습니다.

 

           ⑥ Java Pool 및 Streams Pool

                • Java Pool 메모리는 JVM의 모든 세션별  Java 코드 및 데이터를 저장하는 데 사용되며, 오라클 데이터베이스를

                  실행 중인 모드에 따라 다른 방식으로 사용됩니다

                • Java Pool은 Java로 만들어진 프로그램을 사용할 경우 반드시 설정해야 하고 JAVA_POOL_SIZE 파라미터를 통해

                  설정할 수 있습니다.

                • Streams Pool은 Oracle Streams 전용으로 사용되며, 버퍼링 된 큐 메시지를 저장하고 Oracle Streams 캡처

                  프로세스 및 적용 프로세스에 대해 메모리를 제공합니다

                • Streams Pool을 별도로 구성하지 않으면 크기는 0에서 시작하며 Oracle Streams가 상용될 때 필요에 따라

                  동적으로 커집니다.

 

   ৹ PGA

                • PGA는 서버 또는 백그라운드 프로세스를 시작할 때 오라클 데이터베이스에서 생성되는 비공유 메모리입니다

                • PGA는 서버 프로세스에 대한 데이터 및 제어 정보를 포함하는 전용 메모리 영역으로 각 서버 프로세스에는 고유한

                   PGA 영역을 갖고 있습니다       

                • PGA에 대한 액세스는 해당 서버 프로세스에 배타적이며 대신 작업을 수행하는 Oracle 코드에 의해 서만 읽힙니다

 

           ① Stack Space

                • SQL문장에 Bind 변수를 사용할 때 이를 저장하는 공간입니다.

 

           ② UGA 

                 ▫ User Session Data

                     • 추출된 결과 값을 전달하기 위해 유저 프로세스의 세션 정보를 저장합니다. 그리고 SQL문 결과를 유저

                       프로세스에게 전달하고자 유저 세션 주소를 저장하고 있습니다.

                 ▫ Cursor State

                     • 해당 SQL의 파싱 정보가 기록되어 있는 주소를 저장합니다. 실행한 SQL문의 위치입니다.

                 ▫ Sort Area

                     • 정렬할 때 사용하는 공간입니다. SQL의 작업 공간이며 가장 많은 공간을 할당해야 합니다.

               ▫ Dedicated Server

                      • User Session Data, Cursor State, Sort Area 영역을 직접 PGA 공간에 저장합니다.

                 ▫ Shared Server

                      • User Session Data 영역을 SGA에 저장합니다.

 프로세스 구조 

   ৹ 서버 프로세스

         • 서버 프로세스는 Instance에 연결된 클라이언트의 요청을 처리합니다

         • 유저 프로세스로부터 SQL 수신 및 실행합니다.
             - SQL 파싱 ( 옵티마이저를 통한 실행 계획 생성 포함)
             - SQL 결과 회신

         • 데이터 파일의 데이터 블록을 버퍼 캐시로 적재합니다

         • 데이터 변경 시 리두 로그 버퍼에 기록합니다.

 

   ৹ 백그라운드 프로세스  

          ① DBWn(데이터베이스 기록자 프로세스)

                - 데이터베이스 버퍼 캐시의 더티 버퍼를 디스크에 기록합니다

                - 시스템에서 데이터를 많이 수정하는 경우에는 기록 성능을 개선하기 위해 추가 프로세스를 구성할 수 있습니다

                - 데이터베이스 버퍼 캐시의 버퍼는 수정되면 더티로 표시되며 SCN 순서로 보관되는 상위 체크포인트 큐에 추가됩니다

                - SCN 순서는 변경된 버퍼에 대한 리두 로그에 기록되는 리두 순서와 일치합니다

                - 테이블 스페이스가 읽기 전용으로 설정되거나 오프라인으로 전환되는 등의 경우에도 기록을 수행할 수 있습니다

                - DB_WRITER_PROCESSES 초기화 파라미터는 DBWn 프로세스 수를 지정하고 프로세스의 최대 수는 36개입니다

                - DBWn 프로세스는 다음과 같은 경우에 더티 버퍼를 디스크에 기록합니다

                     ▫ 서버 프로세스가 버퍼를 임계값 수만큼 스캔한 후에 재사용 가능한 클린 버퍼를 찾지 못하면 DBWn에 기록을

                       수행하라는 신호를 보내면 DBWn은 다른 처리를 수행하면서 더티 버퍼를 디스크에 비동기 방식으로 기록합니다

                     ▫ DBWn은 버퍼를 기록하여 Insatance Recovery가 시작되는 리두 스레드의 위치인 체크포인트를 전진시키고

                       이 로그 위치는 버퍼 캐시의 가장 오래된 더티 버퍼에 의해 결정됩니다

                     ▫ 어떤 경우에든 DBWn은 효율성을 개선하기 위해 일괄 처리된(다중 블록) 쓰기를 수행하고, 다중 블록 쓰기에서

                        기록되는 블룩 수는 운영 체제에 따라 다릅니다

 

           LGWR(로그 기록자 프로세스)

                  - 리두 로그 버퍼 항목을 디스크의 리두 로그 파일에 기록하여 리두 로그 버퍼를 관리하며, 마지막으로 기록된 이후

                     버퍼로 복사된 모든 리두 항목을 기록합니다

                  - 리두 로그 버퍼는 일종의 순환 버퍼이므로 LGWR가 리두 로그 버퍼의 리두 리두 항목을 리두 로그 파일에 기록하면

                     서버 프로세스가 새 항목을 복사하여 디스크에 기록된 리두 로그 버퍼의 항목을 겹쳐 쓸 수 있습니다

                  - LGWR는 아래의 경우 기록합니다
                       ▫ User Process가 트랜잭션을 커밋할 때

                       ▫ 리두 로그 버퍼가 1/3 찼을 때

                       ▫ DBWn 프로세스가 수정된 버퍼를 디스크에 기록하기 전에  (필요한 경우에 기록합니다)

                       ▫ 3초마다                      

 

           CKPT(체크포인트 프로세스)

                  - 데이터베이스의 리두 스레드에 SCN(시스템 변경 번호)을 정의하는 데이터 구조로, 컨트롤 파일 및 각 데이터 파일

                     헤더에 기록되는 Recovery의 필수 요소입니다.

                  - 체크포인트가 발생할 경우 오라클 데이터베이스는 모든 데이터 파일의 헤더를 갱신하여 체크포인트의 세부 사항을

                     기록해야 하는데 이 작업은 CKPT 프로세스에 의해 수행됩니다

 

           SMON(시스템 모니터 프로세스)

                  - 시스템 레벨 관점으로 일을 바라보며 데이터베이스를 위한 가비지 컬렉터 역할을 수행합니다

                  - SMON은 필요한 경우 Insatance가 시작될 때 Recovery를 수행하며 더 이상 사용하지 않는 임시 세그먼트도

                     정리합니다

                  - 파일 읽기 또는 오프라인 오류로 인해 Instance Recovery 도중에 종료된 트랜젝션을 건너뛰는 경우

                    테이블스페이스나 파일이 다시 온라인으로 전환되면 SMON이 이를 Recovery 합니다

 

           PMON(프로세스 모니터 프로세스)

                  - User Process가 실패할 경우 프로세스 Recovery를 수행하고, 데이터베이스 버퍼 캐시를 정리하며,

                    User Process에서 사용하던 리소스를 해제합니다

                  - PMON은 활성 트랜젝션 테이블의 상태를 재설정하고 Lock을 해제하며 활성 프로세스 리스트에서 프로세스 ID를

                    제거합니다

                  - PMON은 정기적으로 디스패치와 서버 프로세스의 상태를 확인하여 실행이 정지된 경우 이를 재시작하고, Instance

                    및 디스패처 프로세스에 대한 정보도 네트워크 리스너에 등록합니다

 

           RECO(복구자 프로세스)

                  - RECO는 분산 트랜잭션과 관련된 Failure를 자동으로 해결하는 분산 데이터베이스 구성에 사용되는 백그라운드

                    프로세스입니다

                  - Instance의 RECO 프로세스는 In-Doubt 분산 트랜잭션과 관련된 다른 데이터베이스에 자동으로 연결됩니다

                  - RECO 프로세스는 관련 데이터베이스 서버 간의 연결을 재설정할 때 모든 In-Doubt 트랜잭션을 자동으로 해결하여

                    각 데이터베이스의 보류 트랜잭션 테이블에서 해결된 In-Doubt 트랜잭션에 해당하는 모든 행을 제거합니다

 

            ARCn(아카이버 프로세스)

                  - 로그 수위치가 발생한 후에 리두 로그 파일을 지정된 저장 장치로 복사합니다.

                  - ARCn 프로세스는 데이터베이스가 ARCHIVELOG 모드이며 자도 아카이브가 활성화되어 있을 때만 표시됩니다

                  - 데이터 대량 로드 시와 같이 아카이브 할 작업 로드가 많을 것으로 예사오디면 아카이브 프로세스의 최대수를

                    늘릴 수 있습니다

                  - LOG_ARCHIVE_MAX_PROCESSES 파라미터를 통해 동적으로 프로세스 개수를 변경할 수 있습니다.

                  - 아카이브 프로세스의 기본값은 4개입니다.

2) Database의 구조

   ৹ Data File

         - 데이터파일은 데이터가 저장되는 파일입니다

         - 데이터베이스의 유저 또는 응용 프로그램 데이터, 메타 데이터 및 데이터 딕셔너리를 포함합니다 

         - 서버 프로세스가 파일을 읽어 메모리로 올리면 메모리에서 변경된 데이터는 DBWn에 의해 데이터 파일에 반영하여 시스템

            장애 시에도 데이터를 보존할 수 있습니다.

   ৹ Control File

         - 데이터베이스 자체에 대한 데이터를 포함하고, 리두 로그 및 데이터 파일의 위치 정보, 백업과 관련된 메타 데이터를

            포함하고 있습니다

         - 컨트롤 파일에 저장되는 정보는 아래와 같습니다

             ▫ 리두 로그 및 데이터 파일에 대한 위치정보

             ▫ 체크포인트 발생 정보

             ▫ 데이터베이스의 이름

             ▫ 리두 로그 이력

             ▫ RMAN의 백업 정보

   ৹ Prameter File

         - Instance가 시작될 때 Instance의 구성에 필요한 설정들에 대한 파라미터 값이 저장되어 있는 파일입니다

         - 파라미터 파일의 종류는 아래와 같습니다

             ▫  서버 파라미터 파일 : SPFILE

                 - 파일이 데이터베이스 서버에 위치해야 합니다

                 - 바이너리 파일로 수정을 위해서는 ALTER SYSTEM 명령어를 사용해야 합니다

                 - 자동메모리 관리 시 메모리 정보가 저장되어 재시작 시  반영됩니다

             ▫ 텍스트 초기화 파라미터 파일: PFILE

                 - 텍스트 파일로 vi 에디터를 통해 수정합니다

                 - 동적으로 변경 가능한 파라미터는 종류와 상관없이 운영 중에 변경이 가능합니다

                 - PFILE은 재시작 시 반영을 위해 데이터를 통해 수정하는 작업이 필요합니다.               

   ৹ Password File

         - sysdba, sysoper 및 system럴이 Instance에 원격으로 연결하여 관리 작업을 수행할 수 있도록 합니다.

   ৹ 백업 파일

         - 데이터베이스 Recovery에 사용되는 파일로 일반적으로 Media Failure 또는 User Error로 원본 파일이 손상되거나

           삭제되었을 경우 복원합니다.

   ৹ 온라인 리두 로그 파일

         -  데이터베이스 서버가 손상되었지만 해당 데이터 파일은 손실되지 않은 경우 Instance는 이러한 파일 안에 있는 정보를

             사용하여 데이터베이스를 Recovery 할 수 있습니다

         - 파일을 재 사용하는 순환구조를 사용하며 영구 보존을 위해서는 별도의 파일로 백업하는 과정이 필요합니다

   ৹ 아카이브 된 리두 로그 파일

         -  Instance에 의해 생성되는 데이터 변경에 대한 기록을 지속적으로 포함합니다

         -  이카이브 로그는 복원된 데이터 파일의 Recovery를 가능하게 합니다.

   ৹ Trace file

         -  각 서버와 백그라운드 프로세스는 연관된 Trace File에 정보를 기록할 수 있습니다

         -  내부 오류가 프로세스에서 감지되면 프로세스는 오류에 대한 정보를 해당 Trace File에 덤프 합니다

   ৹ Alert Log File

         -  특수 Trace 항목으로 데이터베이스의 Alter Log에는 메시지와 오류가 시간순으로 기록되어 있습니다.

 

 

 3) 논리적 및 물리적 데이터베이스 구조

   ৹ 데이터베이스, 테이블스페이스 및 데이터 파일

         -  각각의 데이터베이스는 논리적으로 두 개 이상의 테이블 스페이스로 나뉩니다

         -  테이블 스페이스가 테이블 스페이스에 있는 모든 세그먼트의 데이터를 물리적으로 저장할 수 있도록 하나 이상의

            데이터 파일이 명시적으로 생성됩니다

         -  TEMPORARY 테이블 스페이스인 경우 데이터 파일 대신 임시 파일이 포함됩니다

         -  테이블 스페이스의 데이터 파일은 지원되는 모든 저장 기술을 사용해서 물리적으로 저장할 수 있습니다

   ৹ 테이블스페이스

         -  데이터베이스는 테이블스페이스라는 논리적 저장 영역을 단위로 나뉘어 관련된 논리적 구조 또는 데이터 파일을

            함께 그룹화합니다.

   ৹ 세그먼트

         -  Extent 다음 벨의 논리적 데이터베이스 저장 영역은 세그먼트입니다

         -  세그먼트는 특정 논리적 구조에 할당된 일련의 Extent입니다

          ① 데이터 세그먼트

                - 클러스터화 되지 않은 각각의 비인덱스 구성 테이블에는 데이터 세그먼트가 있지만, Extermal Table,

                  Global Temporary Table, Partition Table은 예외입니다

                - 테이블 데이터는 모두 해당 데이터 세그먼트의 Extent에 저장됩니다

                - Partition Table의 경우 각 Partition은 데이터 세그먼트를 가집니다

                - 각 클러스터는 데이터 세그먼트를 가지고 클러스터에 있는 모든 테이블의 데이터는 클러스터의 데이터

                   세그먼트에 저장됩니다.

          ② 인덱스 세그먼트

                - 각 인덱스는 해당 데이터를 모주 저장하는 인덱스 세그먼트를 가집니다

                - Partition 인덱스의 경우 각 Partition은 인덱스 세그먼트를 가집니다

          ③ 언두 세그먼트

                - 각 데이터베이스 Instance당 하나의 UNDO 테이블 스페이스가 생성됩니다

                - 테이블 스페이스에는 언두 정보를 임시로 저장하기 위한 다수의 언두 세그먼트가 포함되어 있습니다

                - 언두 세그먼트의 정보는 데이터베이스 Recovery 중 유저에게 커밋되지 않은 트랜잭션을 롤백하기 위해 읽기

                  일관성 데이터베이스 정보를 생성하는 데 사용됩니다

          ④ 임시 세그먼트

                - SQL 문에서 실행을 완료할 임시 작업 영역이 필요할 때 오라클 데이터베이스에 의해 생성됩니다

                - 명령문의실행이 완료되면 나중에 사용할 수 있도록 임시 세그먼트의 Extent가 Instance로 반환됩니다

   ৹ Extent

         -  데이터 블록 다음 레벨의 논리적 데이터 베이스 공간은 Extent입니다

         -  Extent는 단일 할당을 얻은 일정 수의 연속적인 오라클 데이터 블록으로, 특정 유형의 정보를 저장하는 데 사용됩니다     

         -  Extent에 있는 데이터블록은 논리적으로 연속된 데이터이지만 RAID 스트라이핑 및 파일 시스템 구현으로 인해

            물리적으로는 디스크에 분산되어 있을 수 있습니다

   ৹ 데이터 블록

         -  가장 작은 레벨에서 오라클 데이터베이스의 데이터는 데이터 블록에 저장됩니다

         -  하나의 데이터 블록은 디스크에서 특정 바이트 수의 물리적 공간에 해당합니다

         -  데이터 블록 크기는 생성 시 각 테이블 스페이스에 대해 지정됩니다

         -  데이터베이스는 사용 가능한 데이터베이스 공간을 Oracle 데이터 블록으로 사용 및 할당합니다.

 

IV. ASM ( 자동 저장 영역 관리)

 1) ASM

   - 오라클 데이터베이스 파일을 위한 볼륨 관리자와 파일 시스템의 수직 통합을 제공합니다

   - ASM은 단일 SMP 시스템의 관리 기능이나 Oracle RAC 지원을 위해 클러스터의 여러 노드 간에 관리 기능을 제공합니다

   - 사용 가능한 모든 리소스에 I/O 로드를 분산하여 성능을 최적화하면서 수도 I/O 튜닝의 필요성도 제거 합니다

   - ASM을 통해 DBA는 저장 영역 할당을 조정할 때 데이터베이스를 종료하지 않고 데이터베이스 크기를 늘리도록 허용함으로써

     동적 데이터베이스 환경을 관리할 수 있습니다

   - ASM은 결함 발생 시 대처할 수 있는 데이터의 중보 사본을 관리할 수 있으며 업체에서 공급한 신뢰할 수 있는 자장 영역

     메커니즘의 최상위에 ASM을 구축할 수 있습니다

   - 데이터 관리는 파일별로 하나하나 유저가 상호 작용하는 것이 아니라 데이터 클래스에 대해 원하는 신뢰성 및 성능 특성을

     선택하여 수행합니다

   - ASM 기능은 수동 저장 영역을 자동화함에 따라 더욱 많은 대규모 데이터베이스르 보다 향상된 효율성으로 관리할 수 있도록

     합니다

 

 2) ASM 저장 영역 구성 요소

 

   -  ASM은 기존 데이터베이스 기능을 제거하지 않고 기존의 데이터베이스는 평상시대로 작동할 수 있습니다

   - 새 파일은 ASM 파일로 생성하고 기존 파일은 이전 방식으로 관리하거나 ASM으로 이전할 수 있습니다

   -  데이터 파일은 파이 시스템 또는 ASM 파일의 운영 체제에 저장된 파일과 일 대 일 관계를 갖습니다

   -  ASM 디스크 그룹은 논리적 단위로 관리되는 하나 이상의 ASM 디스크의 모음입니다

   -  각 ASM 디스크는 ASM이 할당하는 가장 작은 연속된 디스크 공간인 여러 ASM 할당 단위로 나뉩니다

   - ASM 디스크 그룹을 생성하면 디스크 그룹의 호환성 레벨에 따라 ASM 할당 단위 크기를 1, 2, 4, 8, 16, 32 또는 64MB로

     설정할 수 있습니다

'ORACLE > 아키텍처' 카테고리의 다른 글

네트워크 환경  (0) 2023.09.18
Dynamic Performance 뷰 와 데이터 딕셔너리  (0) 2023.09.18
데이터베이스 시작 및 종료  (0) 2023.09.18