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

# 사전확인사항

### 지원 플랫폼 및 운영체제

OpenSQL 3.0은 아래의 하드웨어 및 운영체제 환경에서 설치 및 운영이 가능합니다.

| HW/SW | CPU | OS                                                                                                                                     | Binary Bits |
| ----- | --- | -------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| GNU   | x86 | <p>Oracle Linux 8</p><p>Oracle Linux 9</p><p>Rocky Linux 8</p><p>Rocky Linux 9<br>RHEL 8<br>RHEL 9<br>Ubuntu 22.04<br>Ubuntu 24.04</p> | 64bits      |

### 시스템 소프트웨어 요구사항

OpenSQL 3.0을 컴파일 및 실행하기 위해 아래와 같은 시스템 소프트웨어 및 라이브러리 패키지가 사전에 설치되어야 합니다.

### HA 구성 시 시간 동기화(NTP) 확인

HA 환경에서는 모든 노드의 시스템 시간이 동일하게 동기화되어 있어야 합니다. 노드 간 시간이 다를 경우 Leader 선출, 노드 상태 판단, 로그 분석, 장애 조치 과정에서 오작동이 발생할 수 있습니다.

* 모든 HA 노드에는 NTP 또는 Chrony 기반 시간 동기화를 설정해야 합니다.
* 모든 노드는 동일한 시간 동기화 서버를 사용하도록 권장합니다.
* OpenHA 및 PostgreSQL 기동 전에 노드 간 시간 차이가 없는지 확인해야 합니다.

설정 예시:

```bash
sudo systemctl enable --now chronyd
```

확인 예시:

```bash
timedatectl status
chronyc sources -v
date
```

#### RHEL8/Rocky Linux 8/Oracle Linux8

* PostgreSQL

| 패키지명           |     최소 버전 | 정확한 버전 예시          | 용도                       | 필수 여부               |
| -------------- | --------: | ------------------ | ------------------------ | ------------------- |
| `glibc`        |   2.28 이상 | 2.28-225.el8       | GNU C 라이브러리 (시스템 기본)     | **필수**              |
| `libgcc`       |    8.x 이상 | 8.5.0-4.el8        | GCC 런타임 라이브러리            | **필수**              |
| `libstdc++`    |    8.x 이상 | 8.5.0-4.el8        | C++ 표준 라이브러리             | **필수**              |
| `zlib`         | 1.2.11 이상 | 1.2.11-17.el8      | 압축 라이브러리                 | **필수**              |
| `readline`     |    7.0 이상 | 7.0-10.el8         | 명령줄 편집 라이브러리             | **필수**              |
| `ncurses-libs` |    6.1 이상 | 6.1-9.20180224.el8 | 터미널 제어 라이브러리             | **필수**              |
| `lz4-libs`     |  1.8.3 이상 | 1.8.3-3.el8        | LZ4 압축 알고리즘              | **필수**              |
| `libicu`       |   60.2 이상 | 60.2-3.el8         | 유니코드 지원 라이브러리            | **필수**              |
| `openssl-libs` |  1.1.1 이상 | 1.1.1k-5.el8       | SSL/TLS 암호화 라이브러리        | **필수**              |
| `libxml2`      |  2.9.7 이상 | 2.9.7-9.el8        | XML 파싱 라이브러리             | **필수**              |
| `llvm-libs`    |   12.0 이상 | 12.0.1-2.el8       | JIT 컴파일 (PostgreSQL 11+) | 선택 (JIT 사용 시)       |
| `perl-libs`    |   5.26 이상 | 5.26.3-420.el8     | PL/Perl 확장 언어            | 선택 (PL/Perl 사용 시)   |
| `python3-libs` |    3.6 이상 | 3.6.8-38.el8       | PL/Python 확장 언어          | 선택 (PL/Python 사용 시) |
| `tcl`          |    8.6 이상 | 8.6.8-4.el8        | PL/Tcl 확장 언어             | 선택 (PL/Tcl 사용 시)    |
| `pam`          |  1.3.1 이상 | 1.3.1-12.el8       | PAM 인증                   | 선택 (PAM 인증 사용 시)    |
| `krb5-libs`    |   1.18 이상 | 1.18.2-8.el8       | Kerberos 인증              | 선택 (Kerberos 사용 시)  |
| `libxslt`      | 1.1.32 이상 | 1.1.32-6.el8       | XSLT 변환                  | 선택 (XSLT 사용 시)      |
| `openldap`     | 2.4.46 이상 | 2.4.46-17.el8      | LDAP 인증                  | 선택 (LDAP 사용 시)      |
| `libselinux`   |    2.9 이상 | 2.9-5.el8          | SELinux 지원               | 선택 (SELinux 사용 시)   |
| `systemd-libs` |    239 이상 | 239-51.el8         | systemd 통합               | 선택 (systemd 사용 시)   |

* Patroni

| 패키지명                |    최소 버전 | 정확한 버전 예시    | 설명                                   |
| ------------------- | -------: | ------------ | ------------------------------------ |
| `python3`           |   3.6 이상 | 3.6.8-38.el8 | Python 인터프리터                         |
| `python3-libs`      |   3.6 이상 | 3.6.8-38.el8 | Python 런타임 라이브러리                     |
| `glibc`             |  2.28 이상 | 2.28-225.el8 | GNU C 라이브러리 (시스템 기본)                 |
| `libgcc`            |   8.x 이상 | 8.5.0-4.el8  | GCC 런타임 라이브러리                        |
| `libstdc++`         |   8.x 이상 | 8.5.0-4.el8  | C++ 표준 라이브러리                         |
| `openssl-libs`      | 1.1.1 이상 | 1.1.1k-5.el8 | SSL/TLS 암호화 라이브러리                    |
| `jq`                |   1.5 이상 | 1.5-3.el8    | JSON 파서/프로세서                         |
| `postgresql12-libs` |  12.0 이상 | 12.15-1.el8  | PostgreSQL 클라이언트 라이브러리 (psycopg2 의존) |

* pgAudit

| 패키지명            |    최소 버전 | 정확한 버전 예시                    | 설명                                           | 필수 여부 |
| --------------- | -------: | ---------------------------- | -------------------------------------------- | ----- |
| `openssl-devel` | 1.1.1 이상 | `1.1.1k-12.el8_9`            | (PostgreSQL 빌드/연동 옵션에 따라) TLS/crypto 헤더      | 필수    |
| `libpq-devel`   |  13.x 이상 | `libpq-devel-13.20-1.el8_10` | libpq(클라이언트) 헤더/라이브러리                        | 필수    |
| `krb5-devel`    |  1.18 이상 | `1.18.2-32.el8_10`           | (PostgreSQL 빌드/연동 옵션에 따라) GSSAPI/Kerberos 헤더 | 필수    |

* Postgis

| 패키지명            | 최소 버전     | 정확한 버전 예시                  | 설명                          | 필수 여부  |
| --------------- | --------- | -------------------------- | --------------------------- | ------ |
| `SFCGAL`        | 1.x 이상    | libSFCGAL.so.1.5.0         | 3D/고급 기하 연산 엔진              | **필수** |
| `geos`          | 3.13.1 이상 | geos-3.13.1-1.el8          | 2D 공간(geometry) 연산 라이브러리    | **필수** |
| `proj`          | 6.3.2 이상  | proj-6.3.2-4.el8           | 좌표계 변환 라이브러리                | **필수** |
| `json-c`        | 0.13.1 이상 | json-c-0.13.1-3.el8        | JSON 파싱 및 생성 라이브러리          | **필수** |
| `libxml2`       | 2.9.7 이상  | libxml2-2.9.7-21.el8\_10.3 | XML 파싱 및 처리 라이브러리           | **필수** |
| `libxml2-devel` | 2.9.7 이상  | libxml2-2.9.7-21.el8\_10.3 | XML 파싱 및 처리 라이브러리           | **필수** |
| `gdal`          | 3.0.4 이상  | gdal-3.0.4-12.el8          | 공간 데이터 입출력 라이브러리            | **필수** |
| `protobuf-c`    | 1.3.0 이상  | 1.3.0-8.el8                | Protocol Buffer C 런타임 라이브러리 | **필수** |

* pgvectorscale

| 패키지명                 | 최소 버전     | 정확한 버전 예시                        | 설명                          | 필수 여부  |
| -------------------- | --------- | -------------------------------- | --------------------------- | ------ |
| `pkgconf-pkg-config` | 1.4.2 이상  | pkgconf-1.4.2-1.el8              | 라이브러리 빌드 옵션 조회 도구           | **필수** |
| `clang-devel`        | 20.1.8 이상 | 2.module+el8.10.0+2096+4bb90181  | Clang 라이브러리 패키지             | **필수** |
| `rustup`             | 1.85.0    | 1.85.0-x86\_64-unknown-linux-gnu | Rust 설치 및 버전 관리 도구          | **필수** |
| `cargo-pgrx`         | 0.13.0 이상 | 0.13.0                           | Rust 기반 PostgreSQL 확장 개발 도구 | **필수** |

* opensql-installer

| 패키지명                  | 최소 버전   | 정확한 버전 예시       | 설명                  | 필수 여부  |
| --------------------- | ------- | --------------- | ------------------- | ------ |
| `envsubst`            | 0.19 이상 | 0.19.8.1-17.el8 | 환경변수 치환 도구          | **필수** |
| `python3-dataclasses` | 0.8 이상  | 0.8-4.el8       | 데이터 클래스 자동 생성 라이브러리 | **필수** |

* pg\_repack

| 패키지명             | 최소 버전     | 정확한 버전 예시     | 설명                     | 필수 여부 |
| ---------------- | --------- | ------------- | ---------------------- | ----- |
| `make`           | 4.2.1 이상  | 4.2.1-9.el8   | 확장 빌드 도구               | 필수    |
| `gcc`            | 8.0 이상    | 8.5.0-4.el8   | GNU C 컴파일러             | 필수    |
| `lz4-devel`      | 1.8.3 이상  | 1.8.3-3.el8   | LZ4 개발 헤더 및 라이브러리      | 필수    |
| `zlib-devel`     | 1.2.11 이상 | 1.2.11-17.el8 | 압축 라이브러리 개발 헤더 및 라이브러리 | 필수    |
| `readline-devel` | 7.0 이상    | 7.0-10.el8    | 명령줄 편집 개발 헤더 및 라이브러리   | 필수    |

#### RHEL9/Rocky Linux 9/Oracle Linux9

* PostgreSQL

| 패키지명           |     최소 버전 | 정확한 버전 예시     | 용도                              | 필수 여부               |
| -------------- | --------: | ------------- | ------------------------------- | ------------------- |
| `glibc`        |   2.34 이상 | 2.34-40.el9   | GNU C 라이브러리 (시스템 기본)            | **필수**              |
| `libgcc`       |   11.x 이상 | 11.2.1-9.el9  | GCC 런타임 라이브러리                   | **필수**              |
| `libstdc++`    |   11.x 이상 | 11.2.1-9.el9  | C++ 표준 라이브러리                    | **필수**              |
| `zlib`         | 1.2.11 이상 | 1.2.11-31.el9 | 압축 라이브러리                        | **필수**              |
| `readline`     |    8.1 이상 | 8.1-4.el9     | 명령줄 편집 라이브러리                    | **필수**              |
| `ncurses-libs` |    6.2 이상 | 6.2-4.el9     | 터미널 제어 라이브러리                    | **필수**              |
| `lz4-libs`     |  1.9.3 이상 | 1.9.3-5.el9   | LZ4 압축 알고리즘                     | **필수**              |
| `libicu`       |   67.1 이상 | 67.1-7.el9    | 유니코드 지원 라이브러리                   | **필수**              |
| `openssl-libs` |  3.0.x 이상 | 3.0.1-23.el9  | SSL/TLS 암호화 라이브러리 (OpenSSL 3.0) | **필수**              |
| `libxml2`      | 2.9.13 이상 | 2.9.13-3.el9  | XML 파싱 라이브러리                    | **필수**              |
| `llvm-libs`    |   14.0 이상 | 14.0.0-2.el9  | JIT 컴파일 (PostgreSQL 11+)        | 선택 (JIT 사용 시)       |
| `perl-libs`    |   5.32 이상 | 5.32.1-6.el9  | PL/Perl 확장 언어                   | 선택 (PL/Perl 사용 시)   |
| `python3-libs` |    3.9 이상 | 3.9.16-1.el9  | PL/Python 확장 언어                 | 선택 (PL/Python 사용 시) |
| `tcl`          |    8.6 이상 | 8.6.10-5.el9  | PL/Tcl 확장 언어                    | 선택 (PL/Tcl 사용 시)    |
| `pam`          |  1.5.1 이상 | 1.5.1-10.el9  | PAM 인증                          | 선택 (PAM 인증 사용 시)    |
| `krb5-libs`    |   1.19 이상 | 1.19.1-8.el9  | Kerberos 인증                     | 선택 (Kerberos 사용 시)  |
| `libxslt`      | 1.1.34 이상 | 1.1.34-6.el9  | XSLT 변환                         | 선택 (XSLT 사용 시)      |
| `openldap`     |  2.6.2 이상 | 2.6.2-3.el9   | LDAP 인증                         | 선택 (LDAP 사용 시)      |
| `libselinux`   |    3.4 이상 | 3.4-5.el9     | SELinux 지원                      | 선택 (SELinux 사용 시)   |
| `systemd-libs` |    250 이상 | 250-4.el9     | systemd 통합                      | 선택 (systemd 사용 시)   |

* Patroni

| 패키지명                |    최소 버전 | 정확한 버전 예시    | 설명                                   |
| ------------------- | -------: | ------------ | ------------------------------------ |
| `python3`           |   3.9 이상 | 3.9.16-1.el9 | Python 인터프리터                         |
| `python3-libs`      |   3.9 이상 | 3.9.16-1.el9 | Python 런타임 라이브러리                     |
| `glibc`             |  2.34 이상 | 2.34-40.el9  | GNU C 라이브러리 (시스템 기본)                 |
| `libgcc`            |  11.x 이상 | 11.2.1-9.el9 | GCC 런타임 라이브러리                        |
| `libstdc++`         |  11.x 이상 | 11.2.1-9.el9 | C++ 표준 라이브러리                         |
| `openssl-libs`      | 3.0.x 이상 | 3.0.1-23.el9 | SSL/TLS 암호화 라이브러리 (OpenSSL 3.0)      |
| `jq`                |   1.5 이상 | 1.5-3.el9    | JSON 파서/프로세서                         |
| `postgresql13-libs` |  13.0 이상 | 13.11-1.el9  | PostgreSQL 클라이언트 라이브러리 (psycopg2 의존) |

* pgAudit

| 패키지명            |     최소 버전 | 정확한 버전 예시                    | 설명                                           | 필수 여부 |
| --------------- | --------: | ---------------------------- | -------------------------------------------- | ----- |
| `openssl-devel` |    3.x 이상 | `1.1.1k-12.el8_9`            | (PostgreSQL 빌드/연동 옵션에 따라) TLS/crypto 헤더      | 필수    |
| `libpq-devel`   |   13.x 이상 | `libpq-devel-13.20-1.el8_10` | libpq(클라이언트) 헤더/라이브러리                        | 필수    |
| `krb5-devel`    | 1.20.x 이상 | `1.18.2-32.el8_10`           | (PostgreSQL 빌드/연동 옵션에 따라) GSSAPI/Kerberos 헤더 | 필수    |

* Postgis

| 패키지명            | 최소 버전     | 정확한 버전 예시                | 설명                          | 필수 여부  |
| --------------- | --------- | ------------------------ | --------------------------- | ------ |
| `SFCGAL`        | 2.x 이상    | libSFCGAL.so.2.0.0       | 3D/고급 기하 연산 엔진              | **필수** |
| `geos`          | 3.13.1 이상 | geos-3.13.1-1.el9        | 2D 공간(geometry) 연산 라이브러리    | **필수** |
| `proj`          | 9.6.0 이상  | proj-9.6.0-2.el9         | 좌표계 변환 라이브러리                | **필수** |
| `json-c`        | 0.14 이상   | json-c-0.14-11           | JSON 파싱 및 생성 라이브러리          | **필수** |
| `libxml2`       | 2.9.13 이상 | libxml2-2.9.13-14.el9\_7 | XML 파싱 및 처리 라이브러리           | **필수** |
| `libxml2-devel` | 2.9.13 이상 | libxml2-2.9.13-14.el9\_7 | XML 파싱 및 처리 라이브러리           | **필수** |
| `gdal`          | 3.4.x 이상  | gdal-3.4.3-3.el9         | 공간 데이터 입출력 라이브러리            | **필수** |
| `protobuf-c`    | 1.3.0 이상  | 1.3.0-13.el9             | Protocol Buffer C 런타임 라이브러리 | **필수** |

* pgvectorscale

| 패키지명                 | 최소 버전     | 정확한 버전 예시                        | 설명                          | 필수 여부  |
| -------------------- | --------- | -------------------------------- | --------------------------- | ------ |
| `pkgconf-pkg-config` | 1.4.2 이상  | pkgconf-1.4.2-1.el8              | 라이브러리 빌드 옵션 조회 도구           | **필수** |
| `clang-devel`        | 20.1.8 이상 | 2.module+el8.10.0+2096+4bb90181  | Clang 라이브러리 패키지             | **필수** |
| `rustup`             | 1.85.0    | 1.85.0-x86\_64-unknown-linux-gnu | Rust 설치 및 버전 관리 도구          | **필수** |
| `cargo-pgrx`         | 0.13.0 이상 | 0.13.0                           | Rust 기반 PostgreSQL 확장 개발 도구 | **필수** |

* opensql-installer

| 패키지명                  | 최소 버전   | 정확한 버전 예시  | 설명                  | 필수 여부  |
| --------------------- | ------- | ---------- | ------------------- | ------ |
| `gettext`             | 0.21 이상 | 0.21-8.el9 | 환경변수 치환 도구          | **필수** |
| `python3-dataclasses` | 0.8 이상  | 0.8-4.el9  | 데이터 클래스 자동 생성 라이브러리 | **필수** |

* pg\_repack

| 패키지명             | 최소 버전     | 정확한 버전 예시     | 설명                     | 필수 여부 |
| ---------------- | --------- | ------------- | ---------------------- | ----- |
| `make`           | 4.3 이상    | 1:4.3-7.el9   | 확장 빌드 도구               | 필수    |
| `gcc`            | 11.0 이상   | 11.4.1-3.el9  | GNU C 컴파일러             | 필수    |
| `lz4-devel`      | 1.9.3 이상  | 1.9.3-5.el9   | LZ4 개발 헤더 및 라이브러리      | 필수    |
| `zlib-devel`     | 1.2.11 이상 | 1.2.11-31.el9 | 압축 라이브러리 개발 헤더 및 라이브러리 | 필수    |
| `readline-devel` | 8.1 이상    | 8.1-4.el9     | 명령줄 편집 개발 헤더 및 라이브러리   | 필수    |

#### Ubuntu 22.04 (Jammy)

* PostgreSQL

| 패키지명            | 최소 버전     | 정확한 버전 예시              | 용도                       | 필수 여부               |
| --------------- | --------- | ---------------------- | ------------------------ | ------------------- |
| `libc6`         | 2.35 이상   | 2.35-0ubuntu3          | GNU C 라이브러리 (시스템 기본)     | **필수**              |
| `libgcc-s1`     | 12.x 이상   | 12.3.0-1ubuntu1        | GCC 런타임 라이브러리            | **필수**              |
| `libstdc++6`    | 12.x 이상   | 12.3.0-1ubuntu1        | C++ 표준 라이브러리             | **필수**              |
| `zlib1g`        | 1.2.11 이상 | 1:1.2.11.dfsg-2ubuntu9 | 압축 라이브러리                 | **필수**              |
| `libreadline8`  | 8.1 이상    | 8.1.2-1                | 명령줄 편집 라이브러리             | **필수**              |
| `libncurses6`   | 6.3 이상    | 6.3-2                  | 터미널 제어 라이브러리             | **필수**              |
| `liblz4-1`      | 1.9.3 이상  | 1.9.3-2build2          | LZ4 압축 알고리즘              | **필수**              |
| `libicu70`      | 70.x 이상   | 70.1-2                 | 유니코드 지원 라이브러리            | **필수**              |
| `libssl3`       | 3.0.x 이상  | 3.0.2-0ubuntu1         | SSL/TLS 암호화 라이브러리        | **필수**              |
| `libxml2`       | 2.9.13 이상 | 2.9.13+dfsg-1ubuntu0   | XML 파싱 라이브러리             | **필수**              |
| `libllvm14`     | 14.x 이상   | 1:14.0.0-1ubuntu1      | JIT 컴파일 (PostgreSQL 14+) | 선택 (JIT 사용 시)       |
| `libperl5.34`   | 5.34 이상   | 5.34.0-3ubuntu1        | PL/Perl 확장 언어            | 선택 (PL/Perl 사용 시)   |
| `libpython3.10` | 3.10 이상   | 3.10.12-1\~22.04       | PL/Python 확장 언어          | 선택 (PL/Python 사용 시) |
| `libtcl8.6`     | 8.6 이상    | 8.6.12+dfsg-1build1    | PL/Tcl 확장 언어             | 선택 (PL/Tcl 사용 시)    |
| `libpam0g`      | 1.4.0 이상  | 1.4.0-11ubuntu2        | PAM 인증                   | 선택 (PAM 인증 사용 시)    |
| `libkrb5-3`     | 1.19 이상   | 1.19.2-2ubuntu0        | Kerberos 인증              | 선택 (Kerberos 사용 시)  |
| `libxslt1.1`    | 1.1.34 이상 | 1.1.35-1               | XSLT 변환                  | 선택 (XSLT 사용 시)      |
| `libldap-2.5-0` | 2.5.x 이상  | 2.5.13+dfsg-5ubuntu1   | LDAP 인증                  | 선택 (LDAP 사용 시)      |
| `libselinux1`   | 3.3 이상    | 3.3-1build2            | SELinux 지원               | 선택 (SELinux 사용 시)   |
| `libsystemd0`   | 249 이상    | 249.11-0ubuntu3        | systemd 통합               | 선택 (systemd 사용 시)   |
| `flex`          | 2.6.4 이상  | 2.6.4-8build2          | 렉서 생성 도구                 | **필수**              |
| `bison`         | 3.8 이상    | 2:3.8.2+dssfg-1build1  | 파서 생성 도구                 | **필수**              |

* Patroni

| 패키지명         | 최소 버전    | 정확한 버전 예시              | 설명                                   |
| ------------ | -------- | ---------------------- | ------------------------------------ |
| `libc6`      | 2.35 이상  | 2.35-0ubuntu3          | GNU C 라이브러리                          |
| `libgcc-s1`  | 12.x 이상  | 12.3.0-1ubuntu1        | GCC 런타임 라이브러리                        |
| `libstdc++6` | 12.x 이상  | 12.3.0-1ubuntu1        | C++ 표준 라이브러리                         |
| `libssl3`    | 3.0.x 이상 | 3.0.2-0ubuntu1         | SSL/TLS 암호화 라이브러리                    |
| `libpq5`     | 14.x 이상  | 14.13-0ubuntu0.22.04.1 | PostgreSQL 클라이언트 라이브러리 (psycopg2 의존) |
| `jq`         | 1.6 이상   | 1.6-2.1ubuntu3         | JSON 파서/프로세서                         |

* pgAudit

| 패키지명          | 최소 버전    | 정확한 버전 예시              | 설명                 | 필수 여부  |
| ------------- | -------- | ---------------------- | ------------------ | ------ |
| `libssl-dev`  | 3.0.x 이상 | 3.0.2-0ubuntu1.18      | TLS/crypto 헤더      | **필수** |
| `libpq-dev`   | 14.x 이상  | 14.13-0ubuntu0.22.04.1 | libpq 헤더/라이브러리     | **필수** |
| `libkrb5-dev` | 1.19 이상  | 1.19.2-2ubuntu0.3      | GSSAPI/Kerberos 헤더 | **필수** |

* pgvectorscale

| 패키지명           | 최소 버전     | 정확한 버전 예시                        | 설명                          | 필수 여부  |
| -------------- | --------- | -------------------------------- | --------------------------- | ------ |
| `pkg-config`   | 0.29.2 이상 | 0.29.2-1ubuntu3                  | 라이브러리 빌드 옵션 조회 도구           | **필수** |
| `libclang-dev` | 14.0 이상   | 1:14.0-55\~exp2                  | Clang 라이브러리 패키지             | **필수** |
| `rustup`       | 1.85.0    | 1.85.0-x86\_64-unknown-linux-gnu | Rust 설치 및 버전 관리 도구          | **필수** |
| `cargo-pgrx`   | 0.13.0 이상 | 0.13.0                           | Rust 기반 PostgreSQL 확장 개발 도구 | **필수** |
| `libssl-dev`   | 3.0.2 이상  | 3.0.2-0ubuntu3.7                 | TLS/crypto 헤더               | **필수** |
| `curl`         | 7.81.0 이상 | 7.81.0-1ubuntu1                  | 데이터 전송용 명령줄 도구              | **필수** |

* opensql-installer

| 패키지명           | 최소 버전   | 정확한 버전 예시     | 설명                 | 필수 여부  |
| -------------- | ------- | ------------- | ------------------ | ------ |
| `gettext-base` | 0.21 이상 | 0.21-4ubuntu2 | 다국어 지원 기본 유틸리티 패키지 | **필수** |

* postgis

| 설치할 패키지 명     | 최소 버전  | 정확한 버전 예시     | 설명                              | 필수 여부  |
| ------------- | ------ | ------------- | ------------------------------- | ------ |
| `libgeos`     | 3.10.0 | 3.10.2-1      | 공간 기하 연산(점·선·면 교차, 버퍼링 등) C API | **필수** |
| `libproj-dev` | 8.2.0  | 8.2.1-1       | 좌표계 간 투영·변환                     | **필수** |
| `libjson-c5`  | 0.16   | 0.16-2        | JSON 파싱 및 직렬화                   | **필수** |
| `libxml2`     | 2.9.0  | 2.9.13+dfsg-1 | XML 파싱                          | **필수** |

* pg\_repack

| 패키지명              | 최소 버전     | 정확한 버전 예시                | 설명                     | 필수 여부 |
| ----------------- | --------- | ------------------------ | ---------------------- | ----- |
| `make`            | 4.3 이상    | 4.3-4.1build1            | 확장 빌드 도구               | 필수    |
| `gcc`             | 11.0 이상   | 4:11.2.0-1ubuntu1        | GNU C 컴파일러             | 필수    |
| `liblz4-dev`      | 1.9.3 이상  | 1.9.3-2build2            | LZ4 개발 헤더 및 라이브러리      | 필수    |
| `zlib1g-dev`      | 1.2.11 이상 | 1:1.2.11.dfsg-2ubuntu9.2 | 압축 라이브러리 개발 헤더 및 라이브러리 | 필수    |
| `libreadline-dev` | 8.1 이상    | 8.1.2-1                  | 명령줄 편집 개발 헤더 및 라이브러리   | 필수    |

***

#### Ubuntu 24.04 (Noble)

* PostgreSQL

| 패키지명              | 최소 버전     | 정확한 버전 예시              | 용도                       | 필수 여부               |
| ----------------- | --------- | ---------------------- | ------------------------ | ------------------- |
| `libc6`           | 2.39 이상   | 2.39-0ubuntu8          | GNU C 라이브러리 (시스템 기본)     | **필수**              |
| `libgcc-s1`       | 14.x 이상   | 14.2.0-4ubuntu2        | GCC 런타임 라이브러리            | **필수**              |
| `libstdc++6`      | 14.x 이상   | 14.2.0-4ubuntu2        | C++ 표준 라이브러리             | **필수**              |
| `zlib1g`          | 1.3 이상    | 1:1.3.dfsg-3.1ubuntu2  | 압축 라이브러리                 | **필수**              |
| `libreadline8t64` | 8.2 이상    | 8.2-4build1            | 명령줄 편집 라이브러리             | **필수**              |
| `libncurses6`     | 6.4 이상    | 6.4+20240113-2ubuntu1  | 터미널 제어 라이브러리             | **필수**              |
| `liblz4-1`        | 1.9.4 이상  | 1.9.4-1build1          | LZ4 압축 알고리즘              | **필수**              |
| `libicu74`        | 74.x 이상   | 74.2-1ubuntu3          | 유니코드 지원 라이브러리            | **필수**              |
| `libssl3t64`      | 3.0.x 이상  | 3.0.13-0ubuntu3        | SSL/TLS 암호화 라이브러리        | **필수**              |
| `libxml2`         | 2.9.14 이상 | 2.9.14+dfsg-1.3ubuntu3 | XML 파싱 라이브러리             | **필수**              |
| `libllvm17`       | 17.x 이상   | 1:17.0.6-9ubuntu1      | JIT 컴파일 (PostgreSQL 14+) | 선택 (JIT 사용 시)       |
| `libperl5.38`     | 5.38 이상   | 5.38.2-3.2build2       | PL/Perl 확장 언어            | 선택 (PL/Perl 사용 시)   |
| `libpython3.12`   | 3.12 이상   | 3.12.3-1               | PL/Python 확장 언어          | 선택 (PL/Python 사용 시) |
| `libtcl8.6`       | 8.6 이상    | 8.6.14+dfsg-1build1    | PL/Tcl 확장 언어             | 선택 (PL/Tcl 사용 시)    |
| `libpam0g`        | 1.5.3 이상  | 1.5.3-5ubuntu5         | PAM 인증                   | 선택 (PAM 인증 사용 시)    |
| `libkrb5-3`       | 1.20 이상   | 1.20.1-6ubuntu2        | Kerberos 인증              | 선택 (Kerberos 사용 시)  |
| `libxslt1.1`      | 1.1.39 이상 | 1.1.39-0exp1ubuntu1    | XSLT 변환                  | 선택 (XSLT 사용 시)      |
| `libldap2`        | 2.6.x 이상  | 2.5.18+dfsg-0ubuntu1   | LDAP 인증                  | 선택 (LDAP 사용 시)      |
| `libselinux1`     | 3.5 이상    | 3.5-2ubuntu2           | SELinux 지원               | 선택 (SELinux 사용 시)   |
| `libsystemd0`     | 255 이상    | 255.4-1ubuntu8         | systemd 통합               | 선택 (systemd 사용 시)   |
| `flex`            | 2.6.4 이상  | 2.6.4-2build1          | 렉서 생성 도구                 | **필수**              |
| `bison`           | 3.8 이상    | 2:3.8.2+dsfg-1build1   | 파서 생성 도구                 | **필수**              |

* Patroni

| 패키지명         | 최소 버전    | 정확한 버전 예시             | 설명                                   |
| ------------ | -------- | --------------------- | ------------------------------------ |
| `libc6`      | 2.39 이상  | 2.39-0ubuntu8         | GNU C 라이브러리                          |
| `libgcc-s1`  | 14.x 이상  | 14.2.0-4ubuntu2       | GCC 런타임 라이브러리                        |
| `libstdc++6` | 14.x 이상  | 14.2.0-4ubuntu2       | C++ 표준 라이브러리                         |
| `libssl3t64` | 3.0.x 이상 | 3.0.13-0ubuntu3       | SSL/TLS 암호화 라이브러리                    |
| `libpq5`     | 16.x 이상  | 16.4-0ubuntu0.24.04.2 | PostgreSQL 클라이언트 라이브러리 (psycopg2 의존) |
| `jq`         | 1.7 이상   | 1.7.1-3build1         | JSON 파서/프로세서                         |

* pgAudit

| 패키지명          | 최소 버전    | 정확한 버전 예시             | 설명                 | 필수 여부  |
| ------------- | -------- | --------------------- | ------------------ | ------ |
| `libssl-dev`  | 3.0.x 이상 | 3.0.13-0ubuntu3.5     | TLS/crypto 헤더      | **필수** |
| `libpq-dev`   | 16.x 이상  | 16.4-0ubuntu0.24.04.2 | libpq 헤더/라이브러리     | **필수** |
| `libkrb5-dev` | 1.20 이상  | 1.20.1-6ubuntu2.1     | GSSAPI/Kerberos 헤더 | **필수** |

* pgvectorscale

| 패키지명           | 최소 버전     | 정확한 버전 예시                        | 설명                          | 필수 여부  |
| -------------- | --------- | -------------------------------- | --------------------------- | ------ |
| `pkg-config`   | 1.8.1 이상  | 1.8.1-2build1                    | 라이브러리 빌드 옵션 조회 도구           | **필수** |
| `libclang-dev` | 18.0 이상   | 1:18.1.3-1ubuntu1                | Clang 라이브러리 패키지             | **필수** |
| `rustup`       | 1.85.0    | 1.85.0-x86\_64-unknown-linux-gnu | Rust 설치 및 버전 관리 도구          | **필수** |
| `cargo-pgrx`   | 0.13.0 이상 | 0.13.0                           | Rust 기반 PostgreSQL 확장 개발 도구 | **필수** |
| `libssl-dev`   | 3.0.13 이상 | 3.0.13-0ubuntu3.7                | TLS/crypto 헤더               | **필수** |
| `curl`         | 8.5.0 이상  | 8.5.0-2ubuntu10.8                | 데이터 전송용 명령줄 도구              | **필수** |

* opensql-installer

| 패키지명           | 최소 버전   | 정확한 버전 예시      | 설명                 | 필수 여부  |
| -------------- | ------- | -------------- | ------------------ | ------ |
| `gettext-base` | 0.21 이상 | 0.21-14ubuntu2 | 다국어 지원 기본 유틸리티 패키지 | **필수** |

* postgis

| 패키지명          | 최소 버전  | 정확한 버전 예시        | 설명                              | 필수 여부  |
| ------------- | ------ | ---------------- | ------------------------------- | ------ |
| `libgeos`     | 3.12.1 | 3.12.1-1\~jammy1 | 공간 기하 연산(점·선·면 교차, 버퍼링 등) C API | **필수** |
| `libproj-dev` | 9.4.0  | 9.4.0-1\~jammy1  | 좌표계 간 투영·변환                     | **필수** |
| `libjson-c5`  | 0.16   | 0.16-2           | JSON 파싱 및 직렬화                   | **필수** |
| `libxml2`     | 2.9.0  | 2.9.13+dfsg-1    | XML 파싱                          | **필수** |

* pg\_repack

| 패키지명              | 최소 버전    | 정확한 버전 예시               | 설명                     | 필수 여부 |
| ----------------- | -------- | ----------------------- | ---------------------- | ----- |
| `make`            | 4.3 이상   | 4.3-4.1build2           | 확장 빌드 도구               | 필수    |
| `gcc`             | 13.0 이상  | 4:13.2.0-7ubuntu1       | GNU C 컴파일러             | 필수    |
| `liblz4-dev`      | 1.9.4 이상 | 1.9.4-1build1.1         | LZ4 개발 헤더 및 라이브러리      | 필수    |
| `zlib1g-dev`      | 1.3 이상   | 1:1.3.dfsg-3.1ubuntu2.1 | 압축 라이브러리 개발 헤더 및 라이브러리 | 필수    |
| `libreadline-dev` | 8.2 이상   | 8.2-4build1             | 명령줄 편집 개발 헤더 및 라이브러리   | 필수    |

### 표준 아키텍쳐 구성

OpenSQL 3.0 은 고가용성을 제공하기 위해 다음과 같이 3-Node, 2-Node 구성을 권장합니다.

#### 3-Node 구성

고가용성을 위한 대표적인 구성으로, 노드 간 이중화 및 자동 장애 조치 기능을 제공합니다.

<figure><img src="/files/lRjAZoRDEwLUX6KKoDIt" alt="tmax OpenSQL 3 node 구성"><figcaption></figcaption></figure>

#### 2-Node 구성

2개의 노드만 사용하는 구성으로도 고가용성 구현이 가능하지만, 쿼럼 유지를 위해 추가적으로 Witness 노드가 필요합니다.

<figure><img src="/files/jluAzKpF0h1R8LKPoQC0" alt="tmax OpenSQL 2 node 구성"><figcaption></figcaption></figure>

**witness node 최소 구성 요구사항**

(참고:<https://etcd.io/docs/v3.5/op-guide/hardware/>)

**On-premises**

| 항목             | 최소 spec  | 권장 spec      |
| -------------- | -------- | ------------ |
| CPU            | 2        | 4 코어 이상      |
| RAM            | 8GB      | 16 GB 이상     |
| Disk 타입        | SSD      | NVMe SSD     |
| Disk IOPS      | 500 IOPS | 3000 IOPS 이상 |
| Disk bandwidth | 25MB/s   | 100MB/s 이상   |
| Disk 용량        | 50GB     | 100GB 이상     |
| Networks       | 1Gbps    | 10Gbps 이상    |

**Cloud**

| Provider | Type                        | vCPUs | Memory (GB) | Max concurrent IOPS | Disk bandwidth (MB/s) |
| -------- | --------------------------- | ----- | ----------- | ------------------- | --------------------- |
| AWS      | m4.large                    | 2     | 8           | 3600                | 56.25                 |
| GCE      | n1-standard-2 + 50GB PD SSD | 2     | 7.5         | 1500                | 25                    |

#### 설치 전 요구사항

OpenSQL 설치를 위해서는 다음과 같은 시스템 요건이 필요합니다.

* 설치를 수행하는 운영체제(OS) 사용자에게는 **`sudo` 권한이 필요**합니다.
* OpenSQL의 설치 및 실행을 위해 **전용 OS 사용자 계정**을 사용할 것을 권장합니다.
* OpenSQL은 환경변수 `OPENSQL_HOME` 로 설정한 위치에 설치가 되므로 사전에 설정이 필요합니다.
* PostgreSQL 관련 컴포넌트는 환경변수 PG\_HOME으로 설정한 경로의 바이너리/라이브러리를 사용하므로 사전에 설정이 필요합니다.
* PostgreSQL 데이터 디렉터리(PGDATA)는 환경변수 PG\_DATA\_DIR로 설정한 경로를 사용하므로 사전에 설정이 필요합니다.
* OpenSQL의 PG engine은 `PG_HOME` 에 설치되므로 사전에 설정이 필요합니다.
* 일부 패키지들은 rust가 필요합니다. 설치가 되어 있지 않다면 `$OPENSQL_RUST_BASE` 위치에 rust가 설치됩니다. `$OPENSQL_RUST_BASE`가 설정되어 있지 않다면 `/opt/opensql/rust` 에 설치됩니다. `$OPENSQL_RUST_BASE` 하위에 cargo와 rustup라는 디렉터리가 생성되며 각 디렉터리는 `$CARGO_HOME` , `$RUSTUP_HOME` 의 환경 변수로 지정됩니다. 해당 위치에 cargo, rustup가 설치됩니다.
  * 만약 cargo와 rustup이 설치되었다면 상위 디렉터리를 `$OPENSQL_RUST_BASE` 로 지정 바랍니다.

본 매뉴얼에서는 **3-Node 구성**을 기준으로 각 노드에 설치되는 애플리케이션의 구성 예시를 제공합니다. 각 서버는 클러스터 구성에 필요한 주요 컴포넌트를 포함하며, OpenSQL 3.0의 고가용성 환경을 구성하는 기반이 됩니다.

| Servers | Components                    | IP Address  |
| ------- | ----------------------------- | ----------- |
| node1   | PostgreSQL, OpenHA            | 178.176.0.2 |
| node2   | PostgreSQL, OpenHA, Openproxy | 178.176.0.3 |
| node3   | PostgreSQL, OpenHA, Openproxy | 178.176.0.4 |

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

상기 구성은 예시이며, 실제 IP 주소 및 배포구성은 환경에 따라 조정될 수 있습니다.
{% endhint %}

###


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.tibero.com/tmaxopensql/installation/prerequisites.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
