DBMS/AgensSQL

AgensSQL의 Oracle 호환성

(주)비트나인 2023. 9. 2. 12:26

 

 

1. Oracle Database 란?

 

데이터베이스를 모르는 사람도 한 번쯤을 들어봤을 “오라클” DB는 자사의 홈페이지에 “Oracle의 데이터베이스 서비스 및 제품군은 세계 최고의 멀티 모델 컨버지드 데이터베이스 관리 시스템인 Oracle Database의 비용 최적화된 고성능 버전 및 인메모리, NoSQL, MySQL 데이터베이스를 제공합니다.”라고 세계최고라는 말을 내걸 만큼 금융권등 명실상무 DBMS제품군중 가장 신뢰받는 제품임은 맞는듯하다. 

Oracle은 데이터베이스의 랭킹을 보여주는 db-engine 사이트에서도 1위를 유지하고 있다. 하지만 관리비용측면에서 추가기능을 위하여 라이선스를 추가로 구매해야 하는 단점이 있고, 최근에는 오픈소스 데이터베이스로 마이그레이션 하는 경향도 많다. 

 

 

2. AgensSQL의 Oracle 기능

 

비트나인의 AgensSQL Enterprise Editioin은 이러한 오라클로부터의 마이그레이션 그리고 오라클호환모드를 구현을 통하여 AgensSQL Enterprise Edition의 선택시의 큰 장점이라 할 수 있다.

 

 

[ Oracle 호환성 기능 ]

Oracle Compatibility Feature Agens JDBC Agens ODBC Agens .Net Agens OCI
PL/SQL Support
REF_CURSOR-oracletypes.cursor
User-defined exceptions-vendor code  
Named Parameter-parameters names
All Oracle Data types
STRUCT-Enhanced manipulation  
Upper Column Names-(OPTIONAL)      
Multiple INOUT/OUT parameters

 

AgensSQL Enterprise Edition는 오라클 호환모드 및 Agens Conneter Driver (JDBC, ODBC, .NET,OCL)등을 통하여 AgensSQL 및 Oracle 클라이언트 인터페이스의 주요 기능을 지원하고 Oracle에 기존 쿼리 및 애플리케이션을 사용할 수 있기 때문에 마이그레이션을 보다 쉽고 빠르게 수행할 수 있도록 지원한다.

다음으로 주요기능 몇 가지를 살펴보자, 먼저 Oracle 호환모드를 셋팅파트이다.

 

 

3. AgensSQL의 Oracle 호환모드

 

먼저 호환모드 파라미터세팅을 통하여 데이터베이스 서버의 동작을 제어하는데  아래와 같이 CLI를 통하여 Oracle로 설정하면 쿼리 출력 및 전체 시스템 동작이 변경되며 Oracle과 유사성을 갖게 된다.

Oracle로 설정하면 이 파라미터는 Oracle 호환 개체를 찾을 수 있도록 search_path.에 Oracle 호환성 스키마(oracle, sys, dbo)를 암시적으로 추가한다.

 

이 매개 변수는 전체 데이터베이스에 적용되도록 postgresql.conf 구성 파일을 통해 설정할 수 있으며, 또는 클라이언트가 set 명령을 사용하여 세션에서 설정할 수도 있다.

 

[Commend line Oracle 호환모드 설정]

 

 

4. PL/pgSQL에서 PL/SQL 코드를 실행하는 PL/iSQL


다음으로 오라클의 PL/SQL은 구문 내에 SQL 문을 포함하도록 특별히 설계된 절차 언어로PL/SQL 프로그램 단위는 Oracle Database 서버에서 컴파일하여 데이터베이스 내부에 저장되는데, AgensSQL Enterprise Edition의 PL/iSQL은 AgnesSQL의 사용자 지정 함수, 절차 및 패키지를 작성하기 위한 AgnesSQL의 절차 언어입니다. PL/iSQL은 AgnesSQL의 PL/pgsQL에서 파생되었지만 구문론적으로는 Oracle의 PL/SQL에 더 가깝다. 이를 통하여 오라클의 PL/SQL 코드 실행을 지원한다.

AgensSQL의 PL/iSQL은 PACKAGE, PROCESS, FUNCTORES, TRIGGER의 네 가지 프로그램 유형을 지원하는 절차형 블록 구조 언어로  iSQL은 지원되는 프로그램 유형별로 동일한 블록 구조를 사용한다. 

 

이 밖에도 AgensSQL EE에서는 Oracle Database 및 Data Type과 호환되는 Data Type 제공, 계층적 데이터에 대한 작업을 허용하는 SQL 구문을 지원, Oracle에서 사용하던 String 및 Operator 관련 문법을 AgensSQL EE에서 그대로 사용할 수 있는 기능 제공, Application의 Migration 및 개발자를 위한 Built-in Package를 제공, Oracle의 Catalog View(Data Dictionary)와 System Catalog View를 제공, Oracle과 PG 간 호환성을 보장하기 위해 제공한다.

 

 

 

 

글 : 김정한 팀장 ( R&D 기획관리팀 )