O2 Extension 설치
개요
O2는 PostgreSQL 환경에서 오라클이 지원하는 함수/패키지/타입들과 호환되는 인터페이스를 제공하여 사용자들의 편의를 향상시키는 PostgreSQL Extension 입니다.
시스템 요구 사항
OpenSQL에서 지원하는 운영체제/하드웨어 사양과 동일합니다.
O2 Extension에서는 제품 설치를 위한 방법을 다음의 2가지 설치 형태로 제공하고 있습니다.
make 방식으로 설치
shell 방식으로 설치
O2 설치파일 디렉토리 구조
OpenSQL 설치 패키지 내부에 동봉될 O2 설치파일 모음 디렉토리는 아래와 같은 형식으로 제공됩니다.
내부에는 2가지 설치방법을 위한 파일(Makefile, install.sh)들이 제공됩니다.
ls -rlta
total 60
drwxr-xr-x 2 root root 4096 Mar 13 05:09 utl_file
drwxr-xr-x 2 root root 4096 Mar 13 05:09 o2views
drwxr-xr-x 2 root root 4096 Mar 13 05:09 o2types
drwxr-xr-x 2 root root 4096 Mar 13 05:09 o2functions
-rw-r--r-- 1 root root 3266 Mar 13 05:09 install.sh # sh 설치용 스크립트
drwxr-xr-x 2 root root 4096 Mar 13 05:09 dbms_sql
drwxr-xr-x 2 root root 4096 Mar 13 05:09 dbms_random
drwxr-xr-x 2 root root 4096 Mar 13 05:09 dbms_pipe
drwxr-xr-x 2 root root 4096 Mar 13 05:09 dbms_output
drwxr-xr-x 2 root root 4096 Mar 13 05:09 dbms_alert
-rw-r--r-- 1 root root 1465 Mar 13 05:09 VERSION.json # o2 extensions 버전 정보
-rw-r--r-- 1 root root 672 Mar 13 05:09 Makefile # make 방식설치용 파일
drwxr-xr-x 12 root root 4096 Mar 13 05:09 .
drwxr-xr-x 6 root root 4096 Mar 13 05:09 ..make 설치방법
PostgreSQL가 설치된 Linux 플랫폼에서 O2 Extension을 make 커맨드를 통해 자동으로 설치할 수 있습니다
O2 Extension이 포함하는 모든 Extension을 동시 설치하는 전체 설치, 개별 Extension을 설치하는 개별 설치로 구분합니다.
설치 전 요구사항
PostgreSQL이 설치가 되어있고, 터미널 명령줄에서 make, pg_config 커맨드가 사용 가능한 상태여야 합니다.
전체 설치
O2 Extension 설치 구성 요소가 모여 있는 디렉토리(Makefile 이 있는 디렉토리) 내부로 이동하여 아래의 make 커맨드를 수행합니다.
개별 설치
개별 설치는 make 커맨드에 설치하려는 extension 이름을 인자로 추가해야 합니다.
개별 설치 extension 이름 목록
DBMS_ALERT
DBMS_ASSERT
DBMS_OUTPUT
DBMS_PIPE
DBMS_RANDOM
DBMS_SQL
DBMS_JOB
DBMS_RLS
UTL_FILE
O2Functions
O2Types
O2Views
shell 설치방법
make 커맨드를 사용할 수 없는 환경에서 shell script를 이용하여 수기로 설치할 수 있습니다.
PostgreSQL가 설치된 Linux 플랫폼에서 O2 Extension을 수동으로 설치할 수 있습니다. O2 Extension이 포함하는 모든 Extension을 동시 설치하는 전체 설치, 개별 Extension을 설치하는 개별 설치로 구분됩니다.
설치 전 요구사항
PostgreSQL이 설치가 되어있고, 터미널 명령줄에서 pg_config 바이너리가 사용가능한 상태여야 합니다.
전체 설치
O2 Extension 설치 구성요소가 모여 있는 디렉토리(o2) 내부에 동봉되어 있는 install.sh 스크립트를 실행합니다.
개별 설치
개별 설치는 install.sh 커맨드에 설치하려는 extension 이름을 인자로 넣어주어야 합니다.
개별 설치 extension 이름 목록
DBMS_ALERT
DBMS_ASSERT
DBMS_OUTPUT
DBMS_PIPE
DBMS_RANDOM
DBMS_SQL
DBMS_JOB
DBMS_RLS
UTL_FILE
O2Functions
O2Types
O2Views
설치 유의 사항
pg_config와 $PATH 설정
make/shell 설치 방법 모두 pg_config 가 사용 가능한 계정으로 설치를 수행해야 합니다.
$PATH 변수 값에 /usr/pgsql-{PG버전}/bin 이 포함되어 있는지 확인해야합니다.
$PATH 값에 PG경로가 설정 되어있지 않은 유저 계정에서의 설치 방법
$PATH가 설정되어있는 유저의 권한으로 우회하여 설치를 진행해야 합니다.
sudo 권한을 통해 아래와 같은 명령어를 수행합니다.
라이선스 관련 설정
O2 extension 은 Tmax OpenSQL 라이센스를 확인하므로, 아래와 같이 라이센스 파일 경로를 지정해주어야 합니다.
설치 구성 요소
Extension 종류
O2 Extension들은 아래와 같이 크게 4종류 그룹으로 분류됩니다.
각 그룹들의 하위 목록은 실제 제공되는 개별 Extension의 이름을 나열한 것입니다.
Types Extension
O2Types
Views Extension
O2Views
Functions Extension
O2Functions
Package Extensions
DBMS_ALERT
DBMS_ASSERT
DBMS_OUTPUT
DBMS_PIPE
DBMS_RANDOM
DBMS_SQL
DBMS_JOB
DBMS_RLS
UTL_FILE
Extension 구성 요소
각 extension들은 아래와 같은 파일들로 구성되어 있고 각 extension별로 개별 생성 가능합니다.
예시) O2Functions Extension의 구성 파일은 다음과같습니다.
Shared object file (eg. o2functions.so)
Control file (eg. o2functions.control)
Script file (eg. o2functions—1.0.sql, o2functions—1.0—1.1.sql, …)
그리고 extension들의 버전 정보를 한 곳으로 묶은 VERSION.json 파일이 존재합니다.
O2 Extension 활성화
O2 Extension을 설치한 후 활성화를 하기 위해서는 아래와 같이 SQL 커맨드를 실행해야 합니다.
O2 Extension들은 내부에 정의한 객체를 생성하기 위해 스키마
oracle를 사용합니다.Package Extension(DBMS_ALERT, DBMS_PIPE 등)은 각자 extension 이름을 스키마로 사용합니다.
O2 Extension에서 사용될 스키마 이름을 변경하기 위해서는 각 extension의 control 파일 내부
schema항목의 값을 수정해야합니다. (단, 각 Package extension들은 스키마 이름이 고정값으로 변경할 수 없습니다.)
O2 Extension 업데이트
O2 Extension을 상위 버전으로 업데이트 하기 위해서는 아래와 같이 SQL 커맨드를 실행해야 합니다.
HA 구성 시 주의 사항
HA 구성 시 각 노드에 직접 붙어 수동으로 O2 Extension 설치 및 업데이트를 진행해야 합니다.
또한 각 노드에 설치된 O2 Extension version은 일치하게 설치되도록 합니다.
노드 간 버전 차이가 발생하면 버전 간 동작 차이로 인해 쿼리 수행 시 어느 노드로 보내 졌는지에 따라 다른 결과값이 나올 수 있습니다.
Last updated
