Undo 테이블 스페이스 크기 산정

Tibero Database Undo 테이블 스페이스 크기 산정 방법에 대해 설명합니다.

개요

데이터의 갱신이 많은 시스템인 경우 Undo 테이블 스페이스의 I/O가 많이 발생하므로 Undo 테이블 스페이스를 여러 개의 데이터 파일로 작성하여 데이터 파일을 분산시킵니다.

자동 관리 장점

  • 설계 및 관리 용이(rollback,segment)

  • UNDO Data의 overwrite 방지

  • 영역확장 용이

  • 플래시백 쿼리 이용 가능

Tibero는 수동 관리는 지원하지 않습니다.


고려사항

다음은 Undo 테이블 스페이스 크기를 산정할 때 고려할 사항입니다.

  • 데이터 파일 용량, UNDO_RETENTION, Undo Segment 수

  • 자동 관리일 경우 Undo Segment의 개별 공간은 자동으로 관리되므로 전체 Undo Segment의 최소/최대개수와 데이터 파일 용량만 설정합니다.

    • 최소 Undo Segment 개수(_USGMT_ONLINE_MIN)는 보통 10(default)으로 설정합니다. 단, 동시 수행 트랜잭션 수가 많은 경우 부하 중에 추가 Undo Segment를 생성하는 오버헤드가 있을 수 있다. 이경우예상되는동시수행트랜잭션수만큼최소 Undo Segment 개수를 설정해두면 Undo Segme 추가 생성 오버헤드를 줄일 수 있습니다.

    • 최소 Undo Segment 설정 개수가 이미 만들어져 있는 Undo Segment 개수보다 많은 경우 부팅 과정에 서 Undo Segment를 추가로 생성합니다. TAC의 경우 각 노드별로 적용한다. 예를 들어 NODE1은 _USGMT_ONLINE_MIN=30, NODE2는 40 으 로설정하고부팅하면각각 30개와 40개의 Undo Segment가 생성되어있는것을확인할 수 있습니다.


용량 산정

Undo 테이블 스페이스를 생성하는데 필요한 최소 크기와 예상 동시 수행 트랜잭션수를 기준으로 한 예상 크기, 그리고 APM 정보를 이용한 실제 사용 크기로 나누어 생각해 볼 수 있습니다.

최초로 DB를 설치하는 경우 최소 크기 및 예상 크기 중 큰 값을 기준으로 Undo 테이블 스페이스 크기를 산정하고 이후 APM에서 최대 부하가 들어 올때 초당 소모하는 UNDO block 수를 기준으로 실제 크기와 산정한 크기가 맞는지 검증할 수 있습니다.

Undo 테이블 스페이스 산정 방법

  • 최소 크기

(Undo 테이블 스페이스당 Undo Segment 최소 개수 * _USGMT_UNIFORM_EXTSIZE * 2
* Block size(8KB)) + 여유값

  • 예상 크기

(Undo 테이블 스페이스당 Undo Segment 최대 개수 * _USGMT_UNIFORM_EXTSIZE * 2
* Block size(8KB)) + 여유값

  • 실제 크기

(초당 UNDO Block 소모량 * UNDO retention * Block size(8KB)) + 여유값

산정 공식에 사용되는 항목

항목

설명

Undo 테이블 스페이스당 Undo Segment 최소 개수

Single/TAC 모두 경우 _USGMT_ONLINE_MIN 값이다.

Undo 테이블 스페이스당 Undo Segment 최대 개수

예상되는 최대 동시 수행 트랜잭션 수이다.

  • Single의 경우 : _USGMT_ONLINE_MAX 값

  • TAC의 경우 : _USGMT_ONLINE_MAX / 노드수

_USGMT_UNIFORM_EXTSIZE * 2

Undo Segment는 최소 2개의 UNDO extent가 필요하고

Undo extent 하나의 크기는_USGMT_UNIFORM_EXTSIZE이다.

초당 UNDO block 소모량

운영 중 최대 부하 당시의 APM 리포트에서 Undo Statistics의 Undo blocks값을 APM 구간(초)로 나눈 값이 다

UNDO_RETENTION

TIP 설정 값이다. (기본값: 900초)

여유값

KB 값이다. Long 트랜잭션이 비정기적으로 들어올 경우 (INDEX rebuild등도 포함)를 대비하여 충분한 크기를 잡 아 두는 것이 좋다.

Last updated