> 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/administrator-guide/initialization-parameters.md).

# 초기화 파라미터

Tibero의 초기화 파라미터를 관리하는 방법을 설명합니다.

## 개요

**초기화 파라미터**는 Tibero 인스턴스의 동작을 제어하는 설정 값을 말합니다. 이 파라미터들은 인스턴스 시작 시 로드되며, 메모리 구조, 프로세스 수, I/O 동작, SQL 처리 방식 등 다양한 동작을 결정합니다.

초기화 파라미터는 다음과 같은 파일에 저장됩니다.

* TIP (텍스트 기반)
* BTIP (바이너리 기반)

## 파라미터 파일 종류

### TIP (Tibero Initialization Parameter) 파일

기본적으로 사용되는 **초기화 파라미터**를 설정하는 파일이며, Tibero를 구동하는 데 반드시 필요합니다.

파일명은 $TB\_SID.tip 형식이며, 환경 변수로 설정하는 $TB\_SID를 기본 파일명으로 사용합니다. TIP 파일은 $TB\_HOME/config 디렉터리에 위치해야 합니다.

TIP 파일은 운영 체제에서 제공하는 문서 편집기를 사용하여 편집할 수 있습니다. Tibero 구동 중에 TIP 파일을 편집하는 경우 즉시 시스템에 적용되지 않으며, 데이터베이스를 재기동해야 적용됩니다.

### BTIP (Binary TIP) 파일

바이너리 형태로 저장되는 **초기화 파라미터** 설정 파일이며, 사용하려는 경우에만 설정하는 선택 사항입니다.

BTIP 파일은 문서 편집기로 편집할 수 없으며, BTIP 파일의 파라미터 수정은 반드시 DDL을 통해서만 수행해야 합니다. 그렇지 않으면 BTIP 파일이 유효하지 않게 되어 사용할 수 없게 됩니다. BTIP 파일에 변경된 내용은 데이터베이스를 재기동할 때 적용됩니다.

시스템 운영 중에 인스턴스의 초기화 파라미터를 변경하는 경우, TIP 파일은 별도 문서 편집기로 변경 사항을 직접 수정해야 하지만, BTIP 파일은 DDL 문과 SCOPE 옵션을 통해 파일 내용까지 함께 갱신할 수 있어 관리에 용이합니다. 또한, TAC(Tibero Active Cluster)에서 BTIP을 사용하면, 모든 인스턴스가 동일한 BTIP 파일에 파라미터 설정을 같이 저장할 수 있습니다.

## 파라미터 속성

티베로의 초기화 파라미터는 여러 가지 속성을 가지고 있습니다.

### 데이터 타입

초기화 파라미터는 값을 설정할 때, 다음과 같은 타입을 가지고 있습니다.

| 데이터 타입 종류 | 값 설정 설명                                             |
| --------- | --------------------------------------------------- |
| String    | 문자열로 값을 설정                                          |
| Boolean   | <p>Y 혹은 N으로 값을 설정</p><p>(YES/TRUE/NO/FALSE도 가능)</p> |
| DIRNAME   | 디렉토리 경로를 설정 (절대경로)                                  |
| FILENAME  | 파일 경로를 설정 (절대경로)                                    |
| Integer   | 숫자로 값을 설정                                           |

### 기본값

각 초기화 파라미터는 고정된 기본값을 가지거나 시스템 운영 환경 또는 다른 파라미터 값에 따라 기본값이 결정됩니다.

### 필수 파라미터

초기화 파라미터 중에 반드시 TIP(혹은 BTIP) 파일에 값을 설정해야만 인스턴스가 부팅되는 파라미터가 있습니다. 이 파라미터들을 **필수 파라미터**라고 하며, 필수 파라미터들은 TIP(혹은 BTIP) 파일에 모두 값을 지정해야 인스턴스 부팅이 가능합니다. 그 외 파라미터들은 선택 사항입니다.

다음은 필수 초기화 파라미터들의 예입니다.

```
DB_NAME="tibero"
CONTROL_FILES="/data/tibero/c1.ctl"
MEMORY_TARGET=30G
TOTAL_SHM_SIZE=20G
MAX_SESSION_COUNT=100
```

### 조정 불가 파라미터

데이터베이스를 생성한 이후에는 수정이 불가한 초기화 파라미터입니다. 가장 대표적인 예로 `DB_NAME` 파라미터가 있습니다.

### 정적/동적 파라미터

시스템 운영 중에 값을 변경할 수 있으면 **동적 파라미터**이고, 운영 중에 변경이 불가하면 **정적 파라미터**입니다. 정적 초기화 파라미터는 운영 중에는 수정할 수 없기 때문에, TIP(혹은 BTIP) 파일에만 설정할 수 있고, 재기동 시 적용됩니다. 동적 초기화 파라미터는 시스템 운영 중에 DDL을 통해서 값을 변경할 수 있고, 변경 시 즉시 적용됩니다.

### 글로벌 파라미터

TAC에서만 해당되는 내용이며, TAC에서 **모든 인스턴스가 같은 값**을 가져야 하는지 혹은 **모두 다른 값**을 가져야 하는지에 대한 속성입니다. 어떤 파라미터의 경우 모든 인스턴스가 같은 값만 설정해야만 하며, 일부 파라미터는 모든 인스턴스가 서로 다른 값을 설정해야 하는 속성을 가지고 있습니다.

모든 인스턴스가 같은 값을 가져야 하는 파라미터 예입니다.

```
CLUSTER_DATABASE=Y
INSTANCE_TYPE=TIBERO
```

모든 인스턴스가 서로 다른 값을 가져야 하는 파라미터 예입니다.

```
UNDO_TABLESPACE=UNDO1
```

{% hint style="info" %}
글로벌 파라미터가 아닌 일반 파라미터들은 인스턴스 간 서로 다른 값을 설정해도 무방합니다.
{% endhint %}

### 파라미터 적용 범위

초기화 파라미터는 시스템 혹은 세션 단위로 값을 변경할 수 있으며, 이는 초기화 파라미터 속성에 따라 결정됩니다.

**시스템 파라미터**

시스템에서 하나로 관리되는 파라미터입니다. 시스템 파라미터이면서 동적 파라미터인 경우, `ALTER SYSTEM SET` DDL을 통해 변경이 가능합니다.

**세션 파라미터**

세션 단위로 관리되는 파라미터입니다. 세션 파라미터는 `ALTER SESSION SET` DDL을 통해 변경이 가능하고 DDL을 수행하는 세션의 파라미터만 변경이 됩니다.

## 파라미터 변경 방법

정적 파라미터의 경우 TIP(혹은 BTIP) 파일에 작성해야만 파라미터 값을 변경할 수 있지만, 동적 파라미터의 경우 시스템 운영 중에 아래 DDL 문을 통해서 변경이 가능합니다.

### 시스템 파라미터 동적 변경

시스템 파라미터는 동적 파라미터에 대해 다음 DDL을 통해서 값을 변경할 수 있습니다.

```
ALTER SYSTEM SET PARAMETER_NAME=value;
```

여러 개의 파라미터를 동시에 변경하는 방법도 가능합니다. `parameter=val`을 빈칸으로 구분해서 여러 개를 지정할 수 있습니다.

```
ALTER SYSTEM SET PARAMETER_NAME_1=value1 PARAMETER_NAME_2=value2;
```

#### TAC에서 여러 인스턴스의 파라미터 동시 변경

TAC를 사용 중이라면 다른 인스턴스의 파라미터 변경도 가능하고, 모든 인스턴스의 파라미터도 동시에 변경이 가능합니다.

동시에 모든 인스턴스의 파라미터를 변경하는 예입니다.

```
ALTER SYSTEM SET PARAMETER_NAME=val SID='*';
```

`'*'`는 모든 인스턴스를 의미합니다.

{% hint style="info" %}
만약 변경하려는 파라미터가 글로벌 파라미터이고, 모든 노드가 다른 값을 가져야 하는 속성이라면 `SID='*'` 지정 시 DDL이 실패하게 됩니다.
{% endhint %}

다른 인스턴스의 파라미터를 변경하는 예입니다.

```
ALTER SYSTEM SET PARAMETER_NAME=val SID='tac2';
```

{% hint style="info" %}
`SID='자기 인스턴스의 SID'`를 주는 경우, 내 인스턴스의 파라미터만 변경하고, 이는 `SID=''` 구문 없이 수행하는 것과 같습니다.
{% endhint %}

### 세션 파라미터 동적 변경

세션 파라미터도 아래 DDL을 통해서 값을 변경할 수 있습니다. 다만, 세션 파라미터는 내 인스턴스의 현재 세션만 변경하기 때문에, `SID=''` 구문은 사용할 수 없습니다.

```
ALTER SESSION SET PARAMETER_NAME=value;
ALTER SESSION SET PARAMETER_NAME_1=value1 PARAMETER_NAME_2=value2;
```

현재 세션뿐만 아니라, 앞으로 생성될 세션을 위한 파라미터까지 변경하려면, 세션 파라미터를 대상으로 `ALTER SYSTEM SET` DDL을 사용합니다. 이 경우 이미 열려 있는 다른 세션을 제외하고, 내 세션 및 새로운 세션용 파라미터가 변경됩니다.

```
ALTER SYSTEM SET PARAMETER_NAME=value;
```

{% hint style="info" %}
일부 세션 파라미터는 `ALTER SYSTEM SET`으로 변경이 불가한 세션 파라미터도 있습니다.
{% endhint %}

### 파라미터 초기화

이미 변경한 적이 있는 파라미터를 **기본값으로 초기화**하려면 아래 DDL을 사용합니다.

시스템과 세션 파라미터 모두 초기화가 가능합니다.

```
ALTER SYSTEM RESET PARAMETER_NAME;
ALTER SYSTEM RESET PARAMETER_NAME_1 PARAMETER_NAME_2;
ALTER SESSION RESET PARAMETER_NAME_3;
```

## 파라미터 조회

현재 설정된 초기화 파라미터들과 그 값을 조회하려면 아래 뷰를 조회합니다.

현재 세션 기준으로 설정된 시스템 및 세션 파라미터를 조회하는 예입니다.

<pre><code><strong>SELECT * FROM V$PARAMETERS;
</strong>NAME                                     VALUE                          DFLT_VALUE
---------------------------------------- ------------------------------ ------------------------------
WTHR_PER_PROC                            10                             10
MAX_SESSION_COUNT                        20                             20
...
</code></pre>

{% hint style="info" %}
파라미터의 속성까지 조회하려면 `VT_PARAMETER`를 조회합니다.
{% endhint %}

tbsql을 사용하면, 특정 파라미터 값을 빠르게 조회할 수 있습니다.

```
SQL> show parameter MAX_SESSION_COUNT

NAME                       TYPE     VALUE
-------------------------- -------- -------
MAX_SESSION_COUNT          INT32    20
```

## BTIP (Binary TIP) 관리

BTIP 파일은 일반 파일이 아니기 때문에, 파일 생성 및 수정 등 모든 파일에 대한 변경 작업을 DDL을 통해서만 수행할 수 있습니다.

### BTIP 생성

BTIP은 텍스트 기반 TIP 파일로 NOMOUNT 모드 이상으로 구동된 티베로 인스턴스에서 아래 DDL을 통해서 생성합니다.

```
CREATE BTIP FROM TIP;
```

BTIP 파일이 기본적으로 생성되는 위치는 `$TB_HOME/config` 디렉터리 아래 `<DB_NAME>.btip` 파일입니다.

BTIP 파일을 특정 경로에 생성하는 예입니다.

```
CREATE BTIP='/shared/data/tibero.btip' FROM TIP;
```

{% hint style="warning" %}
**주의**

BTIP 경로는 반드시 **절대 경로**를 사용해야 하며, 파일 확장자는 **.btip**이어야 합니다.
{% endhint %}

만약 기존에 생성되어 있는 BTIP 파일을 지우고 새로 만들고 싶다면, `RESET`을 붙여줍니다.

```
CREATE BTIP='/shared/data/tibero.btip' FROM TIP RESET;
```

#### TAC에서 BTIP 생성

여러 인스턴스가 각자 독립적으로 TIP 파일을 사용하는 환경에서, 공유되는 하나의 BTIP 파일에 같이 생성하려면 다음과 같은 방법을 사용합니다.

{% stepper %}
{% step %}

#### 첫 번째 인스턴스에서 최초 BTIP 파일 생성

```
CREATE BTIP='/shared/data/tibero.btip' FROM TIP;
```

{% endstep %}

{% step %}

#### 나머지 인스턴스에서 각각 앞에서 생성된 BTIP 파일에 자기 인스턴스의 파라미터 설정 추가

```
CREATE BTIP='/shared/data/tibero.btip' FROM TIP APPEND;
```

{% endstep %}
{% endstepper %}

위 생성 DDL은 TAC의 각 인스턴스에 각각 접속해서 수행해야 합니다.

### BTIP 사용

생성된 BTIP 파일을 사용하려면, TIP 파일에 `BTIP_FILE_PATH` 파라미터 설정으로 BTIP 파일 경로(절대 경로)를 지정해야 BTIP 파일이 사용됩니다.

TAC(Tibero Active Cluster)에서 BTIP을 사용하는 경우, 모든 인스턴스가 동일한 BTIP 파일을 사용해야 합니다. 즉, 공유 파일 시스템에 BTIP 파일을 두고, 각자의 TIP 파일에서 모두 동일한 파일을 가리키게 설정해야 합니다.

TIP 파일에 BTIP 파일을 사용하기 위한 설정 방법입니다.

```
BTIP_FILE_PATH=/절대경로/파일이름.btip
```

{% hint style="info" %}
BTIP\_FILE\_PATH를 설정하면, TIP 파일 내에 다른 파라미터 설정들은 모두 무시됩니다.
{% endhint %}

TIP 파일에 `BTIP_FILE_PATH`를 설정했다면, 재기동 이후부터 BTIP이 사용됩니다.

### BTIP 내용 변경

BTIP 파일은 바이너리 파일이기 때문에 반드시 DDL을 통해서만 변경해야 합니다. `ALTER SYSTEM SET` DDL에 추가로 `SCOPE=` 구문을 사용합니다.

| SCOPE 종류 | 설명                       |
| -------- | ------------------------ |
| MEMORY   | 현재 실행 중인 인스턴스에만 적용       |
| BTIP     | BTIP 파일에만 저장             |
| BOTH     | 인스턴스에 적용하고, BTIP 파일에도 저장 |

현재 인스턴스의 파라미터 값을 변경하면서 BTIP 내용도 같이 변경하는 예입니다.

```
ALTER SYSTEM SET ACTIVE_SESSION_TIMEOUT=1000 SCOPE=BOTH;
```

{% hint style="info" %}
`SCOPE=` 구문이 없으면 기본 동작은 SCOPE=MEMORY와 같습니다.
{% endhint %}

TAC의 경우 특정 인스턴스의 메모리 파라미터와 BTIP 파라미터를 대신 변경할 수도 있습니다.

```
ALTER SYSTEM SET ACTIVE_SESSION_TIMEOUT=1000 SCOPE=BOTH SID='tac3';
```

`SCOPE=BOTH`와 `SCOPE=MEMORY`의 경우 인스턴스 메모리 파라미터를 동적으로 변경하는 동작을 하기 때문에, 변경하려는 파라미터가 **동적 파라미터**만 가능합니다.

`SCOPE=BTIP`으로 BTIP 파일에 설정된 파라미터는 재기동 후에 해당 파라미터가 적용됩니다.

BTIP 파일에서 특정 파라미터 설정을 제거하는 예입니다.

```
ALTER SYSTEM RESET ACTIVE_SESSION_TIMEOUT SCOPE=BTIP;
```

BTIP에 특정 인스턴스용 파라미터를 제거하려면 `SID='인스턴스이름'`를 추가하면 됩니다.

### BTIP 내용 확인 방법

BTIP 파일은 바이너리 파일이기 때문에 파일에 작성된 파라미터 설정을 보기가 어렵고, 이를 보려면 다음 DDL 혹은 명령어를 통해 내용을 확인할 수 있습니다.

#### BTIP을 TIP 파일로 생성

아래 DDL을 이용하여 BTIP 파일 내용을 TIP 파일로 생성할 수 있습니다.

```
CREATE TIP='/tmp/dump.tip' FROM BTIP;
```

여기에 사용된 BTIP은 현재 인스턴스가 부팅하면서 지정한 BTIP 파일로 TIP 파일의 `BTIP_FILE_PATH`에 지정한 BTIP 파일입니다.

다른 경로에 있는 BTIP 파일로 TIP 파일을 생성하는 예입니다.

```
CREATE TIP='/tmp/dump.tip' FROM BTIP='/data/test.btip';
```

TAC의 경우 BTIP 파일에는 여러 인스턴스의 파라미터 설정이 존재할 수 있는데, 다른 인스턴스의 파라미터 설정을 TIP 파일로 생성하려면 `SID=` 구문을 추가합니다.

```
CREATE TIP='/tmp/dump.tip' FROM BTIP SID='tac2';
```

`SID=''`가 없으면, 자기 인스턴스의 SID가 사용됩니다.

#### 명령어를 통한 BTIP 파일 덤프

TIP 파일에 BTIP을 사용하도록 설정된 상태(BTIP\_FILE\_PATH 지정)에서, 인스턴스 부팅 없이도 다음 명령어를 통해 BTIP의 내용을 덤프할 수 있습니다.

```
tbsvr dump btip
```

자기 인스턴스(`SID=$TB_SID`)의 덤프 결과가 화면에 출력됩니다.

특정 인스턴스의 BTIP 내용을 덤프하는 예입니다.

```
tbsvr dump btip tac2
```

마지막 인자로 SID를 지정합니다.

## 초기화 파라미터 설정 예제

다음은 초기화 파라미터를 설정한 예입니다.

{% hint style="info" %}
**참고**

TOTAL\_SHM\_SIZE 및 MEMORY\_TARGET 설정 시, Megabyte, Gigabyte 단위로 설정하는 경우 M, G 단위로 입력하며, byte의 경우 숫자만 입력합니다.
{% endhint %}

{% hint style="info" %}
**참고**

CONTROL\_FILES와 같이 초기화 파라미터에 절대 경로를 입력하는 경우, Windows 플랫폼에서는 경로 구분자로 '/'(슬래시) 또는 '\\\\'(백슬래시 두 개)를 사용해야 합니다.
{% endhint %}

`tibero.tip` 파일 예

```
DB_NAME=tibero
LISTENER_PORT=8629
CONTROL_FILES="/data/database/tibero/c1.ctl"

MAX_SESSION_COUNT=20

TOTAL_SHM_SIZE=1G
MEMORY_TARGET=2G
```

다음은 위 예에서 설정한 각 파라미터에 대한 설명입니다.

<table><thead><tr><th width="227">파라미터</th><th>설명</th></tr></thead><tbody><tr><td>DB_NAME</td><td>데이터베이스 이름을 설정 (기본값: tibero)</td></tr><tr><td>LISTENER_PORT</td><td><ul><li>리스너가 사용할 포트 번호를 설정 (기본값: 8629)</li><li>SHMKEY와 더불어 한 서버에서 두 개 이상의 데이터베이스 인스턴스를 운영할 때에는 반드시 다르게 설정해야 함</li></ul></td></tr><tr><td>CONTROL_FILES</td><td>컨트롤 파일이 존재하는 위치로서 절대 경로로 설정</td></tr><tr><td>MAX_SESSION_COUNT</td><td>사용자들이 접속해서 동시에 사용할 수 있는 세션의 최대 개수를 설정</td></tr><tr><td>TOTAL_SHM_SIZE</td><td><ul><li>데이터베이스 인스턴스 내에서 사용할 전체 공유 메모리의 크기를 설정</li><li>전체 공유 메모리의 크기는 DB_CACHE_SIZE + LOG_BUFFER + 20M(초기 기동 시 할당 영역) + (WTHR_PROC_CNT * WTHR_PER_PROC) * 1M를 계산한 값보다 여유를 두고 설정</li></ul></td></tr><tr><td>MEMORY_TARGET</td><td><ul><li>데이터베이스 인스턴스 내에서 사용할 전체 메모리의 크기를 설정</li><li>이는 전체 공유 메모리와 프로세스가 각각 사용할 전체 메모리를 합친 크기로, TOTAL_SHM_SIZE + (프로세스에서 사용할 메모리 전체)를 계산한 값으로 설정</li></ul></td></tr></tbody></table>

{% hint style="info" %}
**참고**

초기화 파라미터는 시스템의 사용 환경에 따라 사용하는 파라미터가 다를 수 있으며, 추가로 설정할 수 있습니다.
{% endhint %}
