
1. _gc_affinity_time
2. _gc_defer_time
3. _gc_read_mostly_locking
4. _gc_latch_time
5. _gc_flush_pending
6. _gc_rollback_lock
7. _gc_fence_timeout
8. _gc_block_lost_retry
주의사항
Oracle RAC는 여러 인스턴스가 하나의 데이터베이스를 공유하는 환경에서 운영된다.
여러 노드가 동시에 같은 데이터를 액세스하려고 할 때, 데이터 블록의 일관성을 유지하기 위해 특정 노드가 그 블록에 대한 "마스터" 역할을 담당한다.
마스터 노드는 해당 블록에 대한 변경 사항을 관리하고, 다른 노드에서 해당 블록에 접근할 때 일관성을 보장한다.
초기에는 특정 노드가 블록에 대한 마스터 역할을 담당하게 되지만, 데이터 접근 패턴에 따라 필요 시 마스터 노드가 다른 노드로 이동하게 됩니다.
이를 Dynamic Resource Mastering이라고 하며, 주로 다음과 같은 상황에서 발생합니다:
데이터 접근 패턴 변화
- 마스터 노드: Oracle RAC (Real Application Clusters) 환경에서 특정 데이터 블록이나 리소스에 대한 변경 및 일관성을 관리하는 역할을 맡는 노드
부하 균형: 특정 노드에 부하가 집중되지 않도록 리소스를 동적으로 분배하여 성능을 최적화합니다.
캐시 효율성: 데이터를 자주 참조하는 노드가 마스터 노드가 되면, 데이터 캐시의 일관성을 빠르게 관리할 수 있습니다.
성능 향상: 리소스 마스터를 접근이 집중되는 노드로 이동시킴으로써 데이터를 더 빠르게 처리할 수 있습니다.
부하 분산: 특정 노드에 과도한 부하가 걸리지 않도록 리소스를 동적으로 조정하여 전체 시스템 성능을 최적화합니다.
네트워크 병목 감소: 리소스 마스터의 위치를 최적화함으로써, 데이터 블록을 여러 노드로 전달하는 과정을 최소화하여 네트워크 병목 현상을 줄일 수 있습니다.
Segment Advisor는 Oracle 데이터베이스에서 세그먼트의 저장 공간 효율성을 분석하고 조언을 제공하는 도구입니다.
이 도구는 테이블, 인덱스, 파티션 등의 세그먼트에 대해 저장 공간을 얼마나 효율적으로 사용하는지 평가하고, 공간 회수(재사용) 또는 재구성을 제안합니다.
사용되지 않는 공간 식별
재구성 제안
공간 압축
파티션의 공간 관리
자동 공간 분석
자주 발생하는 데이터 삭제:
세그먼트 공간 재사용
인덱스 재구성
Segment Advisor는 Oracle Database에서 세그먼트의 저장 공간 사용 상태를 분석하고, 불필요한 공간을 회수하거나 세그먼트를 재구성하는 방법을 제안하는 도구입니다.
이를 통해 공간 관리 효율성을 높이고, 데이터베이스 성능을 유지하는 데 기여합니다.
시간을 관리하는 백그라운드 프로세스입니다. 시간 동기화: VKTM은 Oracle 데이터베이스에서 각종 타이밍 작업(예: 타이머, 시간 대기 이벤트 등)을 정확하게 수행할 수 있도록 시스템 시간과 데이터베이스 시간을 동기화합니다.
정확한 타이머 제공: VKTM은 타이머 기반 작업, 특히 백그라운드 프로세스나 특정 대기 이벤트에서 요구되는 타이밍 정보를 제공합니다. 이로 인해 Oracle 내부의 작업들이 정해진 시간 간격으로 정확하게 실행됩니다.
기본 타임 소스 역할: 데이터베이스 내에서 사용되는 타임스탬프와 같은 시간 관련 정보를 제공하며, Oracle 데이터베이스에서 시간 의존적인 기능들을 원활하게 동작하도록 돕습니다.
VKTM은 Oracle 데이터베이스에서 시간 관련 작업을 관리하는 프로세스로, 백그라운드에서 시간 동기화를 유지하며 정확한 타이밍 정보를 제공하는 역할을 합니다.
Force CR (Consistent Read)는 Oracle 데이터베이스에서 강제 일관성 읽기를 의미
이는 주로 데이터의 일관성을 유지하면서 데이터를 읽어오는 방식 중 하나
Oracle은 데이터 변경이 발생하는 상황에서도 다른 세션에서 일관성 있는 데이터를 읽을 수 있도록, 일관성 읽기(Consistent Read, CR) 메커니즘을 사용합니다.
Oracle은 다중 사용자 환경에서 트랜잭션 격리를 위해, 데이터를 읽을 때 변경 중인 데이터를 바로 읽지 않고 Undo Segment(되돌림 세그먼트)에서 해당 데이터의 이전 버전을 참조하여 읽습니다.
이렇게 함으로써, 다른 사용자가 데이터를 변경하더라도 이전의 일관성 있는 데이터 상태를 유지한 채로 읽어올 수 있습니다.
Force CR은 데이터를 읽을 때 이미 변경된 데이터 블록을 읽는 대신, 강제로 해당 블록의 일관된 상태를 복구하여 읽는 메커니즘입니다. 일반적으로 다음과 같은 경우에 발생할 수 있습니다:
변경된 데이터 블록을 읽을 때: 다른 트랜잭션이 데이터 블록을 변경했거나 커밋하지 않은 데이터를 포함하고 있을 때, Oracle은 강제로 CR을 실행하여 일관된 데이터를 제공하기 위해 Undo 세그먼트를 사용하여 해당 블록의 이전 버전을 참조합니다.
Undo 데이터 사용: Force CR이 발생하면, Undo Segment에 저장된 이전 데이터를 활용하여 데이터를 읽습니다. 이를 통해 트랜잭션의 변경 사항이 완료되지 않은 상태에서도 일관성 있는 데이터를 읽을 수 있게 됩니다.
데이터 일관성 유지: 여러 사용자가 동시에 데이터베이스에 접근하고 데이터를 변경하는 상황에서도, 일관성 있는 데이터를 보장할 수 있습니다.
읽기 성능: Force CR은 성능 관점에서 어느 정도의 오버헤드를 발생시킬 수 있지만, 데이터 일관성을 유지하기 위해 필수적인 작업입니다. Undo Segment에서 데이터를 참조하는 과정에서 추가 I/O가 발생할 수 있습니다.
데이터의 중요성은 시간이 지남에 따라 변동합니다. 생성된 지 얼마 안 된 중요한 데이터는 자주 사용되므로 빠른 접근 속도를 요구하고, 오래된 데이터는 덜 자주 사용되므로 저비용의 저장소에 보관될 수 있습니다.
ILM Statistics는 데이터의 이러한 접근 빈도나 크기 변화를 모니터링하여, 각 데이터 세그먼트가 얼마나 자주 사용되고 얼마나 큰 공간을 차지하는지를 기록하고, 자동으로 데이터를 적절한 저장소로 이동시킬 수 있습니다.
이를 통해, 자주 사용되지 않는 데이터를 덜 비용이 드는 저성능 스토리지로 이동시키거나, 자주 사용되는 데이터를 고성능 스토리지에 유지시키는 등의 데이터 계층화가 가능합니다.
자동 데이터 계층화: 데이터가 자주 사용되거나 업데이트되는 시점에서 고성능 스토리지에 유지되도록 하고, 오래된 데이터는 저비용의 스토리지로 자동 이동시킵니다.
자동화된 공간 관리: 오래된 데이터의 경우 압축을 통한 공간 절약이나, 적절한 보관 장소로 자동 이동이 가능합니다.
접근 빈도 및 변화량 추적: ILM 통계를 사용하여 데이터의 변화를 추적하고, 자주 사용되는 데이터와 사용되지 않는 데이터를 구분하여 관리할 수 있습니다.