중화사전망 - 서예자전 - 오라클 데이터베이스의 구조는 무엇입니까?

오라클 데이터베이스의 구조는 무엇입니까?

Oracle 데이터베이스 아키텍처는 데이터베이스의 물리적 구조, 논리적 구조, 메모리 구조 및 프로세스의 네 가지 측면으로 구성됩니다.

1. 물리적 구조

물리적 데이터베이스 구조는 데이터베이스를 구성하는 운영 체제 파일에 의해 결정됩니다. Oracle 데이터베이스 파일은 다음과 같습니다.

데이터 파일 (데이터 파일)

데이터 파일은 데이터베이스 테이블의 데이터 및 색인 데이터와 같은 데이터베이스의 모든 데이터를 저장하는 데 사용됩니다. 그들은 보통 * 에 있다. Dbf 형식 (예: userCIMS.dbf) 입니다.

로그 파일 (리두 로그 파일)

로그 파일은 시스템 오류 발생 시 데이터베이스를 복구하는 데 사용할 수 있도록 데이터베이스에 대한 모든 변경 사항 (추가, 삭제 및 수정 등) 을 기록하는 데 사용됩니다. 이 이름은 일반적으로 Log* 에 있습니다. Dbf 형식 (예: log 1cims.dbf, log2cims.dbf) .....

제어 파일 (제어 파일)

각 Oracle 데이터베이스에는 데이터베이스의 물리적 구조 (예: 데이터베이스 이름, 데이터베이스의 데이터 파일 및 로그 파일의 이름 및 위치) 를 기록하는 작은 이진 파일인 해당 제어 파일이 있습니다. 데이터베이스를 열고 액세스하는 데 사용됩니다. 이 이름은 일반적으로 Ctrl*ctl 형식 (예: Ctrl 1CIMS.ctl) 입니다

구성 파일

구성 파일은 Oracle 데이터베이스의 일부 중요한 매개변수 (예: 데이터 블록 크기, 메모리 구조 구성 등) 를 기록합니다. 이 이름은 보통 init* 에 있습니다. Ora 형식 (예: initCIMS.ora) 입니다.

2 논리 구조

Oracle 데이터베이스의 논리적 구조는 데이터베이스가 데이터베이스의 데이터를 논리적으로 저장하는 방법을 설명합니다. 논리적 구조에는 테이블스페이스, 세그먼트, 범위, 데이터 블록 및 스키마 객체가 포함됩니다. 데이터베이스의 논리적 구조에 따라 데이터베이스가 시스템의 물리적 공간을 사용하는 방법이 결정됩니다. 스키마 객체와 해당 관계는 관계형 데이터베이스 간의 설계를 설명합니다.

논리적으로 데이터베이스는 데이터베이스 내에서 물리적으로 그룹화된 데이터 웨어하우스인 하나 이상의 테이블스페이스로 구성됩니다. 각 테이블스페이스는 세그먼트로 구성됩니다. 세그먼트는 확장 영역 집합으로 구성되고, 확장 영역은 하드 디스크에 있는 하나 이상의 물리적 블록에 해당하는 연속 데이터베이스 블록 세트로 구성됩니다. 테이블스페이스에는 하나 이상의 데이터베이스에 대한 물리적 파일 (즉, 데이터 파일) 이 저장됩니다. 데이터베이스의 데이터는 논리적으로 테이블스페이스에 저장됩니다.

테이블스페이스 (테이블스페이스)

Oracle 데이터베이스는 시스템 테이블스페이스와 비시스템 테이블스페이스의 두 가지 유형의 테이블스페이스를 포함하는 테이블스페이스라는 하나 이상의 논리적 구조로 나뉩니다. 여기서 System 테이블스페이스는 데이터베이스 설치 시 자동으로 설정되며 데이터베이스의 모든 데이터 딕셔너리, 내장 프로시저, 패키지, 함수 및 트리거 정의, 시스템 롤백 세그먼트를 포함합니다. 또한 사용자 데이터를 포함할 수 있습니다. 。

테이블스페이스는 많은 세그먼트로 구성되며, 각 세그먼트는 불연속적인 영역으로 구성되며, 각 영역은 데이터베이스 작업의 최소 단위인 연속 데이터 블록 세트로 구성됩니다.

각 테이블스페이스는 하나 이상의 데이터 파일에 해당하며 각 데이터 파일은 하나의 테이블스페이스에만 속할 수 있습니다.

데이터베이스 블록 (데이터베이스 블록)

논리 블록 또는 ORACLE 블록이라고도 하는 데이터베이스 블록은 디스크에 있는 하나 이상의 물리적 블록에 해당하며, 크기는 init.ora 파일에 있는 초기화 매개변수 db-block-size 에 의해 결정되며 일반적으로 크기가 2k 입니다. Pckfree 및 pctused 매개 변수는 블록 공간 사용을 최적화하는 데 사용됩니다.

정도

영역은 데이터베이스 스토리지 공간 할당의 논리적 단위이며 연속적인 데이터 블록 세트로 구성됩니다.

세그먼트 (세그먼트)

세그먼트는 테이블스페이스의 특정 논리적 구조에 대한 모든 데이터를 포함하는 하나 이상의 불연속 영역 모음으로, 테이블스페이스 간에 저장할 수 없습니다. Oracle 데이터베이스에는 데이터 세그먼트, 인덱스 세그먼트, 임시 세그먼트, 롤백 세그먼트 등이 포함됩니다.

스키마 객체

Oracle 데이터베이스의 스키마 객체에는 테이블, 뷰, 시퀀스, 동의, 인덱스, 트리거, 내장 프로시저 등이 포함됩니다. 다음 섹션에서 설명합니다.

3.Oracle 서버 시스템 프로세스 및 메모리 구조

Oracle 데이터베이스가 컴퓨터 서버에서 시작될 때 이를 서버에서 Oracle 인스턴스 시작이라고 합니다. ORACLE 인스턴스는 데이터베이스에 액세스하고 제어하는 소프트웨어 메커니즘으로 SGA (시스템 전역 영역) 와 ORACLE 프로세스의 두 부분으로 구성됩니다. SGA 는 데이터베이스 인스턴스 및 데이터베이스의 데이터 관리 및 운영을 위한 제어 정보를 저장하는 * * * 공유 메모리 버퍼 집합입니다.

프로세스는 운영 체제에서 매우 중요한 개념입니다. 프로세스는 일련의 작업을 수행하고 특정 작업을 완료합니다. ORACLE 데이터베이스 관리 시스템의 경우 프로세스는 사용자 프로세스, 서버 프로세스 및 백그라운드 프로세스로 구성됩니다.

사용자가 응용 프로그램을 실행하면 해당 응용 프로그램에 대한 사용자 프로세스가 생성됩니다. 서버 프로세스는 접속된 사용자 프로세스의 요청을 처리하고 사용자 프로세스와 통신하여 접속된 사용자 프로세스의 ORACLE 요청을 제공합니다.

시스템 성능을 향상시키고 다중 사용자 기능을 향상시키기 위해 ORACLE 은 데이터베이스 데이터 작업을 위해 시스템 백그라운드에서 백그라운드 프로세스를 시작합니다.

시스템 프로세스의 백그라운드 프로세스는 주로 다음을 포함합니다.

SMON 시스템 모니터링 프로세스: (시스템 모니터) 정렬, 자동 인스턴스 복구 및 테이블스페이스 정렬을 담당합니다.

PMON 프로세스 모니터 프로세스: (process monitor) 사용자 프로세스 장애 복구, 메모리 영역 비우기, 프로세스에 필요한 리소스 여유 확보.

DBWR 데이터베이스 쓰기 프로세스: 데이터베이스 버퍼의 거버넌스 프로세스입니다.

사용자 프로세스가 항상 사용할 수 있는 사용 가능한 버퍼 블록을 찾을 수 있도록 데이터베이스 버퍼에는 항상 일정 수의 사용 가능한 버퍼 블록이 있습니다.

LGWR 로그 파일 쓰기 프로세스: 로그 버퍼의 로그 항목을 디스크의 로그 파일에 기록하는 로그 버퍼의 거버넌스 프로세스입니다. 인스턴스당 하나의 LGWR 프로세스만 있습니다.

ARCH 아카이브 프로세스: (아카이브 프로세스) 채워진 온라인 로그 파일을 지정된 저장 장치에 복사합니다. ARCH 작업은 로그 파일 그룹 스위치가 나타날 때만 수행됩니다. ARCH 는 필수는 아니지만 자동 아카이브를 사용할 수 있거나 수동 아카이브를 요청한 경우에만 게시됩니다.

RECO recovery process: 분산 옵션이 있을 때 사용되는 프로세스로, 주로 분산 트랜잭션을 참조할 때 발생하는 오류를 해결하는 데 사용됩니다. 분산 트랜잭션을 허용하는 시스템에만 나타날 수 있습니다.

LCKn 차단 프로세스: 병렬 서버 시스템에 사용되며 주로 인스턴스 간 차단에 사용됩니다.

메모리 구조 (SGA)

SGA 는 인스턴스에 대한 데이터 및 제어 정보를 포함하는 Oracle 이 인스턴스에 할당하는 공유 메모리 버퍼 집합입니다. SGA 는 인스턴스 시작 시 자동으로 할당되고 인스턴스 종료 시 회수됩니다. 데이터베이스에 대한 모든 데이터 작업은 SGA 를 통해 수행해야 합니다.

저장된 정보에 따라 SGA 의 메모리는 버퍼 캐시: 데이터베이스에 데이터베이스 블록의 복사본을 저장하는 영역으로 나눌 수 있습니다. 인스턴스에 연결된 모든 사용자 프로세스가 공유하는 버퍼 블록 세트로 구성됩니다. 버퍼 블록 수는 초기화 매개변수 DB_BLOCK_BUFFERS 에 의해 결정되고 버퍼 블록 크기는 초기화 매개변수 DB_BLOCK_SIZE 에 의해 결정됩니다. 큰 데이터 블록은 조회 속도를 높일 수 있습니다. DBWR 에 의해 운영됩니다.

B. 리두 로그 버퍼: 데이터 작업에 대한 변경 정보를 저장합니다. 이러한 항목은 로그 버퍼에 리두 항목으로 저장됩니다. 로그 항목은 데이터베이스 복구가 필요한 경우 데이터베이스에 대한 변경 사항을 재생성하거나 롤백하는 데 사용됩니다. 로그 버퍼의 크기는 초기화 매개변수 LOG_BUFFER 에 의해 결정됩니다. 로그 버퍼가 클수록 로그 파일 I/O 수가 줄어듭니다. 백그라운드 프로세스 LGWR 은 로그 버퍼의 정보를 디스크의 로그 파일에 쓰고 ARCH 백그라운드 프로세스를 시작하여 로그 정보를 아카이브할 수 있습니다.

C.*** 공유 풀: 처리에 사용된 SQL 문에 대한 정보를 포함합니다. 여기에는 * * * SQL 영역과 데이터 딕셔너리 저장소가 포함됩니다. * * * Enjoy SQL 영역에는 특정 SQL 문을 실행하는 데 사용되는 정보가 들어 있습니다. 데이터 딕셔너리 영역은 모든 사용자 프로세스에서 공유하는 데이터 딕셔너리를 저장하는 데 사용됩니다.

커서: 일시 중지된 SQL 문을 실행하는 데 사용되는 일부 메모리 포인터입니다.

기타 정보 영역: 위의 정보 영역 외에 프로세스 간 통신 정보 (예: 차단 정보) 도 포함되어 있습니다. 멀티 스레드 서버 구성에서는 요청 대기열 및 응답 대기열과 같은 프로그램 전역 영역에 대한 정보도 있습니다. 이 문서는/ipbun/blog/item/3f75d7230a7f5ee698250a7c.html 에서 제공됩니다.