> For the complete documentation index, see [llms.txt](https://docs.tibero.com/technical-guides/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tibero.com/technical-guides/topics/installation/physical-design/undo-table-space-size.md).

# Undo Tablespace 크기 산정

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

## 개요 <a href="#bookmark24" id="bookmark24"></a>

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

#### 자동 관리 장점

* 설계 및 관리 용이(rollback,segment)&#x20;
* UNDO Data의 overwrite 방지&#x20;
* 영역확장 용이
* 플래시백 쿼리 이용 가능

{% hint style="info" %}
Tibero는 수동 관리는 지원하지 않습니다.
{% endhint %}

###

***

## 고려사항 <a href="#bookmark25" id="bookmark25"></a>

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

* 데이터 파일 용량, 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가 생성되어있는것을확인할 수 있습니다.

###

***

## 용량 산정 <a href="#bookmark26" id="bookmark26"></a>

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

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

### Undo Tablespace 산정 방법&#x20;

* **최소 크기**

```
(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 Tablespace 산정 공식에 사용되는 항목

<table data-header-hidden><thead><tr><th width="333"></th><th></th></tr></thead><tbody><tr><td><strong>항목</strong></td><td><strong>설명</strong></td></tr><tr><td>Undo 테이블 스페이스당 Undo Segment 최소 개수</td><td>Single/TAC 모두 경우 _USGMT_ONLINE_MIN 값이다.</td></tr><tr><td>Undo Tablespace당 Undo Segment 최대 개수</td><td><p>예상되는 최대 동시 수행 트랜잭션 수이다.</p><ul><li>Single의 경우 : _USGMT_ONLINE_MAX 값</li><li>TAC의 경우 : _USGMT_ONLINE_MAX / 노드수</li></ul></td></tr><tr><td>_USGMT_UNIFORM_EXTSIZE * 2</td><td><p>Undo Segment는 최소 2개의 UNDO extent가 필요하고</p><p>Undo extent 하나의 크기는_USGMT_UNIFORM_EXTSIZE이다.</p></td></tr><tr><td>초당 UNDO block 소모량</td><td>운영 중 최대 부하 당시의 APM 리포트에서 Undo Statistics의 Undo blocks값을 APM 구간(초)로 나눈 값이 다</td></tr><tr><td>UNDO_RETENTION</td><td>TIP 설정 값이다. (기본값: 900초)</td></tr><tr><td>여유값</td><td>KB 값이다. Long 트랜잭션이 비정기적으로 들어올 경우 (INDEX rebuild등도 포함)를 대비하여 충분한 크기를 잡 아 두는 것이 좋다.</td></tr></tbody></table>

###
