데이터 아키텍처 & 처리기술 & DBMS/Oracle 14

Consistent Mode Read 와 Current Mode Read

1. Consistent 모드 읽기 SCN 확인 과정을 거치며 쿼리가 시작된 시점을 기준으로 일관성 있는 상태로 블록을 액세스하는 것 SQL 트레이스 Call 통계의 query 항목, AutoTrace에서의 consistent get (블록수) 2. Current 모드 읽기 SQL문이 시작된 시점이 아니라 데이터를 찾아간 바로 그 시점의 최종 값을 읽으려고 블록을 액세스하는 것 SQL 트레이스 Call 통계의 current 항목, AutoTrace에서의 db block gets (블록수)

Snapshot Too old

"Snapshot too old"는 Oracle 데이터베이스에서 발생하는 에러 메시지 중 하나로, 주로 장시간 실행되는 트랜잭션 또는 롤백 세그먼트 공간이 한계에 도달한 경우에 나타날 수 있습니다. 이 에러는 일반적으로 데이터베이스에서 읽은 데이터의 일관성을 유지하기 위해 사용되는 Multi-Version Concurrency Control (MVCC) 메커니즘과 관련이 있습니다. MVCC는 각 트랜잭션에 대해 일관된 데이터 스냅샷을 유지하여 여러 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 지원합니다. 하지만 트랜잭션이 실행되는 동안 다른 트랜잭션에 의해 데이터가 수정될 경우, 해당 트랜잭션이 볼 수 있는 데이터의 일관성을 유지하기 위해 UNDO 세그먼트에 기록된 변경 이력을 사용합니다. "Snaps..

ITL Slot 구성요소

Oracle 데이터베이스에서 ITL(Interested Transaction List)은 데이터 블록 내에 있는 각 행에 대한 트랜잭션 정보를 저장하는 구조입니다. ITL에는 해당 행을 읽거나 수정하는 트랜잭션들의 정보가 기록되어 있습니다. ITL 슬롯은 이러한 트랜잭션 정보를 담고 있는 블록 내의 영역입니다. ITL 슬롯의 구성 요소는 다음과 같습니다: 1.Transaction Slot Entry(트랜잭션 슬롯 엔트리): ITL 슬롯에는 트랜잭션 정보가 슬롯 당 하나씩 기록됩니다. 각 트랜잭션 슬롯 엔트리에는 해당 트랜잭션의 정보가 담겨 있습니다. 2. Transaction ID(트랜잭션 식별자): 트랜잭션 슬롯에는 해당 트랜잭션을 식별하는 고유한 ID가 저장됩니다. 이 식별자는 트랜잭션을 추적하고 행..

query scn과 block scn의 차이점은?

Oracle 데이터베이스에서 "Query SCN"과 "Block SCN"은 데이터베이스의 내부 동작과 관련된 용어로, 각각 특정 쿼리나 블록의 상태를 나타냅니다. 1. Query SCN (System Commit Number): - 정의: 특정 쿼리의 SCN은 쿼리가 실행된 시점의 데이터베이스 상태를 나타내는 것으로, 해당 쿼리에 대한 일관된 데이터 스냅샷을 지정합니다. - 활용: 일반적으로 특정 쿼리의 SCN은 데이터의 특정 시간점에서 데이터의 일관성을 유지하고 조회하는 데 사용됩니다. 예를 들어 `AS OF SCN` 구문을 사용하여 과거의 데이터 상태를 조회할 때 사용될 수 있습니다. 2. Block SCN (System Commit Number): - **정의:** 블록의 SCN은 해당 블록이 마지..

SCN(System Commit Number)

Oracle에서 SCN(System Commit Number)은 데이터베이스 내에서 트랜잭션 및 데이터 변경을 추적하는 데 사용되는 중요한 개념입니다. SCN은 시스템 수준에서 각 트랜잭션의 고유한 순차 번호를 나타내며, 데이터베이스의 무결성과 일관성을 유지하는 데 도움이 됩니다. 다음은 SCN에 대한 주요 특징과 설명입니다: 1. 고유성: 각 SCN은 유일하게 식별되는 값으로, 특정 시점에서 데이터베이스의 상태를 식별합니다. 모든 데이터 변경 및 트랜잭션은 이러한 SCN을 사용하여 서로 구분됩니다. 2. 트랜잭션 커밋 시 생성: SCN은 트랜잭션이 커밋될 때 생성됩니다. 즉, 트랜잭션이 커밋되면 해당 트랜잭션의 SCN이 부여되며, 이 SCN은 트랜잭션의 종료 시점에 적용된 모든 데이터 변경 사항에 대해..

다중버전일관성(Multi-Version Concurrency Control, MVCC)

다중버전일관성(Multi-Version Concurrency Control, MVCC)은 데이터베이스 시스템에서 동시성을 확보하면서도 일관된 데이터 읽기를 지원하는 기술적인 접근 방식 중 하나입니다. MVCC는 여러 트랜잭션이 동시에 데이터베이스에 접근할 때 각 트랜잭션이 일관성 있는 데이터를 읽을 수 있도록 하는 데 중점을 둡니다. MVCC는 다음과 같은 원리에 기반하고 있습니다: 1. **버전 관리:** MVCC는 데이터베이스에 있는 각 행(row)에 대해 여러 버전을 유지합니다. 각 트랜잭션이 시작될 때, 해당 트랜잭션에 대한 일관된 데이터 스냅샷을 생성합니다. 2. **읽기 일관성:** 트랜잭션이 데이터를 읽을 때, 해당 트랜잭션의 시작 시점에 일관된 데이터 버전을 제공합니다. 다른 트랜잭션이 동..

oracle undo segment에서 cr copy

Oracle에서 "CR Copy"는 "Consistent Read Copy"의 약어로서, Undo 세그먼트에서 발생하는 활동 중 하나를 나타냅니다. Undo 세그먼트는 트랜잭션이 롤백되거나 데이터 변경 내용을 복원하는 데 사용되는 공간으로, 여러 활동 중 하나가 CR Copy입니다. CR Copy는 일반적으로 다음과 같은 상황에서 발생합니다: 1. **Read Consistency(읽기 일관성)을 지원:** Oracle은 트랜잭션이 실행 중에 데이터를 읽을 때 일관된 데이터를 제공하기 위해 다양한 메커니즘을 사용합니다. 특히 다른 트랜잭션이 동시에 데이터를 수정할 때, 읽는 트랜잭션은 해당 순간에 일관된 데이터를 보기 위해 CR Copy를 사용합니다. 2. **UNDO 레코드의 복사본:** Undo 세그..

Read Committed

"Read Committed"는 데이터베이스의 트랜잭션 격리 수준(Isolation Level) 중 하나로, 여러 트랜잭션이 동시에 데이터를 읽고 쓸 때 어떻게 동작할지를 정의합니다. Read Committed 격리 수준에서는 트랜잭션이 읽는 동안에 다른 트랜잭션이 동일한 데이터를 수정할 수 있지만, 해당 트랜잭션이 완료될 때까지는 수정 사항이 커밋되지 않습니다. Read Committed 격리 수준의 주요 특징은 다음과 같습니다: 1. 읽기 일관성: Read Committed에서는 트랜잭션이 읽을 때 해당 순간에 유효한 데이터를 읽습니다. 하지만 다른 트랜잭션이 동시에 같은 데이터를 수정하는 경우, 읽는 트랜잭션은 수정 중인 데이터가 아닌 이전 상태의 데이터를 읽게 됩니다. 이는 읽는 트랜잭션이 항상 ..

테이블 레벨 Lock 읽기 일관성 확보

테이블 레벨의 Lock은 여러 트랜잭션이 동시에 동일한 테이블에 접근하는 것을 제어하고 읽기 일관성을 확보하는 데 사용될 수 있습니다. 테이블 레벨 Lock은 특정 트랜잭션이 해당 테이블에 대한 독점적인 접근 권한을 가지게 하여 다른 트랜잭션이 동시에 해당 테이블을 수정하는 것을 방지합니다. 일반적으로 테이블 레벨 Lock을 사용하는 상황은 다음과 같습니다: 1. **읽기 일관성을 확보:** 여러 트랜잭션이 동시에 동일한 테이블을 읽을 때, 테이블 레벨 Lock을 사용하여 동시에 여러 트랜잭션이 해당 테이블을 수정하는 것을 막습니다. 이로써 데이터의 일관성을 유지할 수 있습니다. 2. **읽기 작업 동안 갱신 방지:** 테이블 레벨 Lock을 사용하면 특정 트랜잭션이 해당 테이블을 읽는 동안 다른 트랜잭..

문장수준 읽기 일관성

Oracle 데이터베이스에서 "문장수준 읽기 일관성"은 주로 트랜잭션 내에서 여러 SQL 문장을 수행할 때, 해당 트랜잭션에서 읽은 데이터가 일관성을 유지하도록 하는 개념입니다. 이것은 특히 트랜잭션 도중에 다른 트랜잭션이 데이터를 수정하거나 삽입하는 경우에 중요합니다. Oracle에서 문장수준 읽기 일관성은 기본적으로 트랜잭션 내에서 수행되는 각 SQL 문장이 동일한 데이터 스냅샷을 보게 함으로써 달성됩니다. 이것은 다음과 같은 방식으로 작동합니다: 1. 트랜잭션 시작 트랜잭션이 시작되면 Oracle은 해당 트랜잭션에 대한 일관된 데이터 스냅샷을 만듭니다. 2. SQL 문장 실행 트랜잭션 내에서 여러 SQL 문장이 실행됩니다. 각 문장은 해당 트랜잭션의 시작 시점에서의 데이터 스냅샷을 기반으로 실행됩니..

반응형