> For the complete documentation index, see [llms.txt](https://docs.tibero.com/tibero-manuals/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/tibero-manuals/7.2.6.manuals/installation-guide/appendix/patch.md).

# Appendix J. Patch

Tibero에서 제공하는 패치에 대해서 간략히 설명합니다.

## 패치

### 패치란

DB 설치 이후 기능 추가 및 결함(버그)등을 반영하기 위해 개선된 버전으로 교체 적용하는 작업입니다. 패치는 적용 범위와 서비스 중단 여부에 따라 아래와 같이 구분합니다.

<table><thead><tr><th>구분</th><th width="255">대상</th><th>DB 서비스중단 여부</th></tr></thead><tbody><tr><td>일반 패치</td><td>단일 노드(Standalone) 서버</td><td>발생</td></tr><tr><td>TAC 롤링 패치</td><td>TAC(Active-Active) 클러스터</td><td>없음</td></tr><tr><td>클라이언트 패치</td><td>JDBC, ODBC, tbexp/tbimp, tbloader 등 클라이언트 라이브러리</td><td>없음</td></tr></tbody></table>

{% hint style="info" %}
위 내용은 Major 및 FixSet 버전이 동일한 경우(패치)를 기준으로 작성되었습니다
{% endhint %}

### 패치 작업 절차(DB 기준)

#### 일반 패치 절차

단일 노드 환경에서는 Tibero 서비스를 종료한 후 바이너리를 교체하는 방식으로 진행하며, 교체 작업 중에는 DB 서비스 중단이 발생합니다.

1. Tibero 종료
2. Tibero 바이너리 교체
3. Tibero 기동

> ※ 각 단계 전후로 진행해야 할 태스크(추가되는 패치에 연관된 작업) 존재 시 해당 시점에 수행합니다.

#### TAC 롤링 패치

TAC(Tibero Active Cluster) 환경에서는 롤링 패치(Rolling Patch) 방식을 적용하여 DB 서비스 중단 없이 패치를 완료할 수 있습니다. 이는 클러스터 내 노드를 한 대씩 순차적으로 분리 및 재참여 하는 방식으로, 서비스는 나머지 노드를 통해 지속되도록 하는 방식입니다.

* 단, 해당 패치에 TAC 롤링 패치 불가 항목이 포함되지 않아야 합니다. (패치셋 버전 기본 정책)
* 단, 노드 분리 시 나머지 노드가 감당할 수 있는 수준의 부하여야 합니다.
* 부하가 적은 시간대에 수행하는 것을 권장합니다.
* 기본 절차: 전체 서비스를 유지하기 위해 각 노드별로 다음 과정을 순차적으로 수행합니다.

1. Tibero 종료(클러스터 분리)
2. Tibero 바이너리 교체(패치 적용)
3. Tibero 기동(클러스터 재참여)

… 위 과정을 나머지 노드에 대해 반복 수행합니다.

> ※ 각 단계 전후로 수행해야 할 태스크가 있는 경우 다음 기준에 따라 수행합니다.
>
> * 바이너리 교체 전 태스크: 첫 번째 노드 작업 시점에 수행
> * 바이너리 교체 후 태스크: 마지막 노드 작업 완료 후 수행

{% hint style="info" %}
**패치셋(PatchSet)**

Tibero에서 정기적으로 제공하는 FixSet 기반의 누적 패치 묶음으로 다수의 결함 수정 및 개선 사항이 포함됩니다.
{% endhint %}

#### 클라이언트 패치

클라이언트 라이브러리(JDBC, ODBC, tbexp/tbimp, tbloader 등) 패치는 DB 서비스 중단 없이 진행할 수 있습니다.

* 단, Tibero 서버와 클라이언트 간의 메시지 송수신 프로토콜이 상호 호환되어야 합니다. (패치셋 버전 기본 정책)
* 클라이언트 패치는 각 클라이언트 단위로 개별 적용이 가능하며, DB 서버의 기동 상태와 무관하게 수행할 수 있습니다.
