ORACLE 데이터베이스는 하나의 단위로 처리된 데이터 모음입니다. 각 ORACLE 데이터베이스에는 물리적 구조와 논리적 구조가 있습니다.
데이터베이스의 물리적 구조는 데이터베이스를 구성하는 운영 체제 파일에 따라 결정됩니다. 데이터베이스 파일은 데이터베이스 정보를 위한 실제 물리적 저장소를 제공합니다. 각 ORACLE 데이터베이스는 데이터 파일, 로그 파일 및 제어 파일이라는 세 가지 유형의 파일로 구성됩니다.
논리적 데이터베이스 구조는 사용자가 포함하는 데이터베이스 구조입니다. ORACLE 데이터베이스의 논리적 구조는 다음 요소에 의해 결정됩니다.
(1) 하나 이상의 테이블 공간
(2) 데이터베이스 스키마 객체
테이블 공간과 같은 논리 저장소 구조는 데이터베이스의 물리적 공간이 사용되는 방식과 스키마 개체 간의 관계를 관리하는 데 사용되어 데이터베이스의 관계형 디자인을 구성합니다.
1. 데이터베이스 물리적 구조
ORACLE 데이터베이스는 데이터 파일, 로그 파일, 제어 파일의 세 가지 유형의 물리적 파일로 구성됩니다.
1. 데이터 파일
각 ORACLE 데이터베이스에는 하나 이상의 물리적 데이터 파일(데이터 파일)이 있습니다. 데이터베이스의 데이터 파일에는 모든 데이터베이스 데이터가 포함됩니다. 논리적 데이터베이스 구조의 데이터는 데이터베이스의 데이터 파일에도 물리적으로 저장됩니다. 데이터 파일의 특징은 다음과 같습니다.
(1) 데이터 파일은 하나의 데이터베이스에만 연결됩니다.
(2) 데이터 파일이 생성되면 크기를 변경할 수 없습니다.
(3) 테이블스페이스는 다음과 같이 구성됩니다. 하나 이상의 데이터 파일 중
데이터 파일을 구성하는 데이터는 필요할 때 ORACLE 내부 저장 영역에 읽고 저장할 수 있습니다. 예를 들어, 사용자가 데이터베이스의 테이블에 있는 특정 데이터에 접근하려고 하는데, 요청한 정보가 데이터베이스의 메모리 저장 영역에 없으면 해당 데이터 파일에서 해당 정보를 읽어 메모리에 저장합니다. 새로운 데이터가 수정되어 삽입되면 데이터 파일을 즉시 쓸 필요가 없습니다. 전체 디스크 출력량을 줄이고 성능을 향상시키기 위해 데이터를 메모리에 저장한 후 ORACLE 백그라운드 프로세스인 DBWR이 이를 해당 데이터 파일에 쓰는 방법을 결정합니다.
2. 로그 파일
각 데이터베이스에는 2개 이상의 로그 파일(Redo 로그 파일)로 구성된 로그 파일 그룹이 있으며, 각 로그 파일은 데이터베이스 로그를 수집하는 데 사용됩니다.
로그의 주요 기능은 데이터베이스에 대한 수정 사항을 기록하는 것이므로 데이터베이스에 대한 모든 수정 사항이 로그에 기록됩니다. 로그 파일은 주로 데이터베이스를 장애로부터 보호하는 데 사용됩니다. 로그 파일 자체의 장애를 방지하기 위해 ORACLE에서는 여러 개의 동일한 로그 복사본이 서로 다른 디스크에 유지될 수 있도록 미러링된 로그(mirrored redo log)를 허용합니다.
로그 파일의 정보는 시스템 오류나 미디어 오류로 인해 데이터베이스를 복구할 때만 사용됩니다.
3. 제어 파일
각 ORACLE 데이터베이스에는 데이터베이스의 물리적 구조를 기록하는 제어 파일(제어 파일)이 하나 이상 있습니다. 포함된 주요 정보는 다음과 같습니다.
(1) 데이터베이스 이름
(2) 데이터베이스 데이터 파일 및 로그 파일의 이름과 위치
(3) 데이터베이스 생성 날짜
ORACLE 데이터베이스의 인스턴스가 시작될 때마다 해당 제어 파일을 사용하여 열어야 하는 데이터베이스 및 로그 파일을 식별합니다. 데이터베이스 작업을 진행할 때. 데이터베이스의 물리적 구성이 변경되면 ORACLE은 데이터베이스의 제어 파일을 자동으로 변경합니다.
2.3.2 데이터베이스 논리 구조
데이터베이스의 논리 구조에는 테이블스페이스, 세그먼트, 익스텐트, 블록이 포함됩니다.
1. 테이블스페이스
데이터베이스는 하나 이상의 논리 단위로 구분되며, 이 논리 단위를 테이블스페이스라고 합니다. 테이블스페이스는 관련된 논리적 구조를 함께 그룹화합니다. DBA는 테이블스페이스를 사용하여 다음을 수행할 수 있습니다.
(1) 데이터베이스 데이터의 디스크 할당 제어
(2) 결정된 공간 공유를 데이터베이스 사용자에게 할당
(3) 단일 테이블스페이스를 온라인 또는 오프라인으로 만들어서 , 데이터 가용성 제어
(4) 부분 데이터베이스 백업 또는 복구 작업 수행
(5) 성능 향상을 위해 여러 장치에 데이터 스토리지 할당
데이터베이스, 테이블 공간 및 데이터 파일 간의 관계는 다음과 같습니다. 그림 2.3 -2가 표시됩니다.
각 데이터베이스는 논리적으로 하나 이상의 테이블 공간으로 나눌 수 있습니다. 각 테이블스페이스는 하나 이상의 데이터 파일로 구성됩니다. 테이블스페이스는 테이블스페이스에 있는 모든 논리적 구조의 데이터를 물리적으로 저장합니다. DBA는 새로운 테이블스페이스를 생성하고, 테이블스페이스에 데이터 파일을 추가하거나 삭제하며, 기본 세그먼트 저장 위치를 설정하거나 변경할 수 있습니다.
각 ORACLE 데이터베이스에는 데이터베이스가 생성될 때 자동으로 생성되는 SYSTEM이라는 테이블 공간이 포함되어 있습니다. 이 테이블스페이스에는 항상 전체 데이터베이스의 데이터 사전 테이블이 포함됩니다. 가장 작은 데이터베이스에는 SYSTEM 테이블스페이스만 필요할 수 있습니다. 이 테이블스페이스는 항상 온라인 상태여야 합니다. 테이블 및 저장된 PL/SQL 프로그램 단위(프로시저, 함수, 패키지 및 트리거)에 대한 모든 저장된 데이터는 SYSTEM 테이블스페이스에 저장됩니다.
테이블스페이스에 데이터 파일을 추가하여 테이블스페이스를 확장합니다. 테이블스페이스의 크기는 테이블스페이스를 구성하는 데이터 파일의 크기의 합입니다.
DBA는 SYSTEM 테이블 공간을 제외한 ORACLE 데이터베이스의 다른 테이블 공간을 온라인 또는 오프라인으로 만들 수 있습니다(오프라인 테이블 공간은 활성 롤백 세그먼트를 가질 수 없음). 테이블스페이스는 일반적으로 온라인 상태이므로 포함된 데이터를 데이터베이스 사용자가 사용할 수 있습니다. 테이블스페이스가 오프라인이면 해당 데이터를 사용할 수 없습니다. 다음 상황에서 DBA는 이를 오프라인으로 만들 수 있습니다.
(1) 데이터의 일부를 사용할 수 없게 만들고 나머지 부분에 대한 정상적인 액세스를 허용합니다.
(2) 오프라인 테이블스페이스 백업을 수행합니다
(3 ) 애플리케이션과 해당 테이블 세트를 일시적으로 사용할 수 없도록 애플리케이션을 수정하거나 유지하려면
활성 롤백 세그먼트가 포함된 테이블스페이스를 오프라인으로 전환할 수 없습니다. 테이블스페이스는 롤백 세그먼트가 사용 중이지 않을 때만 오프라인으로 전환할 수 있습니다. .
온라인이든 오프라인이든 데이터 사전에 테이블스페이스의 상태를 기록합니다. 데이터베이스가 닫힐 때 테이블스페이스가 오프라인 상태인 경우 다음에 데이터베이스가 탑재되고 다시 열릴 때 테이블스페이스는 오프라인 상태로 유지됩니다.
특정 오류가 발생하면 테이블스페이스가 자동으로 온라인에서 오프라인으로 변경될 수 있습니다. 다중 테이블스페이스를 사용하면 다양한 유형의 데이터가 분리되어 DBA가 데이터베이스를 보다 쉽게 관리할 수 있습니다.
ORACLE 데이터베이스의 테이블 공간은 하나 이상의 물리적 데이터 파일로 구성됩니다. 하나의 데이터 파일은 하나의 테이블 공간에만 연결될 수 있습니다.
ORACLE은 세그먼트, 영역, 데이터 블록 등의 논리적 데이터 구조를 통해 디스크 공간의 사용을 보다 세부적으로 제어할 수 있습니다.
2. 세그먼트
세그먼트(SEGMENT)는 테이블스페이스에 지정된 유형의 논리적 저장 구조를 포함하며 영역 그룹으로 구성됩니다. ORACLE 데이터베이스에는 데이터 세그먼트, 인덱스 세그먼트, 롤백 세그먼트 및 임시 세그먼트 등 여러 유형의 세그먼트가 있습니다.
데이터 세그먼트: 집계되지 않은 각 테이블마다 데이터 세그먼트가 있으며, 테이블의 모든 데이터는 이 세그먼트에 저장됩니다. 각 집계에는 데이터 세그먼트가 있으며 집계의 각 테이블에 대한 데이터는 이 세그먼트에 저장됩니다.
인덱스 세그먼트: 각 인덱스에는 인덱스 데이터를 저장하는 인덱스 세그먼트가 있습니다.
롤백 세그먼트: DBA가 설정하며 취소할 정보를 임시로 저장하는 데 사용됩니다. 이 정보는 읽기 일관성이 있는 데이터베이스 정보를 생성하고 데이터베이스 복구 중에 사용되며 커밋되지 않은 트랜잭션을 롤백하는 데 사용됩니다.
임시 세그먼트: SQL 문에 임시 작업 영역이 필요한 경우 ORACLE에 의해 생성됩니다. 명령문이 실행되면 임시 세그먼트 영역이 시스템에 반환됩니다.
ORACLE은 모든 세그먼트에 영역 단위로 공간을 할당합니다.
3. 영역
영역(EXTENT)은 데이터베이스 저장 공간 할당의 논리적 단위로 연속적인 ORACLE 데이터 블록으로 구성됩니다. 각 세그먼트는 하나 이상의 지역으로 구성됩니다. 세그먼트의 모든 공간이 완전히 사용되면 ORACLE은 해당 세그먼트에 새 영역을 할당합니다.
유지 관리 목적으로 데이터베이스의 각 세그먼트에는 세그먼트의 특성과 세그먼트 내 영역 디렉터리를 설명하는 세그먼트 제목 블록이 포함되어 있습니다.
4. 데이터 블록
데이터 블록은 ORACLE이 데이터 파일의 저장 공간을 관리하는 데 사용하는 단위로 데이터베이스에서 사용하는 가장 작은 I/O 단위입니다. 운영 체제.
이상은 ORACLE 데이터베이스 모델의 개요입니다. 더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!