본문 바로가기

Database/ORACLE

Oracle vs PostgreSQL 마이그레이션을 위한 기능 비교

Oracle vs PostgreSQL 마이그레이션을 위한 기능 비교

Oracle vs PostgreSQL 기능 비교

 

안녕하세요.

오늘은 Oracle vs PostgreSQL 에 대한 이야기 입니다.

 

Oracle에서 PostgreSQL로 마이그레이션을 하는 경우도 요즘 왕왕보이고 들리고 있습니다.

그만큼 또 Oracle과 PostgreSQL을 비교 해보고 싶은 분들도 많이 계실겁니다.

 

그럼 Oracle과 PostgreSQL에 대하여 간단하게 어떻게 다른지 확인을 해보도록 하겠습니다.

 

Oracle 이란

우선 Oralce에 대해서 알아 봐야겠죠.

Oralce의 가용성 아키텍쳐에 대해서 먼저 보겠습니다.

Oracle 이란1

RAC란 멀티노드로 구성되어 있으며 스토리지를 공유하는 클러스터 입니다.

ASM은 스토리지의 이중화 구성이 가능 하며, 분산처리 시스템을 구축 할 수 있는 클러스터 입니다.

Flash Back이란 테이블및 데이터베이스 기준으로 과거 시점의 데이터를 활용할 수 있는것이 큰 특징 입니다.

ADG는 Redo Sync를 이용하여 서로 다른 서버로 데이터 클로닝이 가능 합니다.

 

PostgreSQL 이란

PostgreSQL은 Oracle에 준하는 엔터프라이즈급 기능들을 많이 제공 하고 있습니다.

또한, 강력한 커뮤니티 그룹을 가지고 있는것이 장점 입니다. 더불어 많은 레퍼런스가 있다는 장점이 있죠.

 

PostgreSQL 이란1

PostgreSQL은 UC Berkeley 대학에서 개발했던 Ingres DB에서 뻗어나온 DB입니다.

사실 Ingres DB는 현존하는 거의 모든 DB의 시초라고도 볼 수 있습니다.

 

다음은 Azure에서 실시 했던 실험의 결과 자료 인데요, PostgreSQL의 특장점을 다른 DB와 비교하여 한눈에 확인 할 수있습니다.

PostgreSQL 이란2

Oracle과 PostgreSQL의 성능을 확인 할 수 있겠죠?

하지만, 이건 Azure라는 집단에서 실험한 단순 실험이니 환경이 달라지고 구성에 변화가 있다면 그 결과는 또 달라질수 있다는점을 알고 계셔야 합니다.

 

 

 

다음은 PostgreSQL의 인스턴스 오브젝트 구조도 입니다.

오라클과 상당히 흡사한 구조를 가지고 있는것을 볼 수 있습니다.

PostgreSQL 이란2

 

Oracle vs PostgreSQL

Oracle과 PostgreSQL간의 기능 비교 자료 입니다.

표시되고 있는 내용은 Oracle이나 PostgreSQL 각각이 유일하게 가지고 있는 기능을 표시 한 것 입니다.

PostgreSQL이 많은 기능을 가지고 있는것을 확인 할 수 있습니다.

Oracle vs PostgreSQL1

Oracle에서는 제공 되지만 PostgreSQL에서는 제공이 되지 않기에 Oracle to PostgreSQL 마이그레이션을 했을때 포기해야 되는 것들도 나열 해보겠습니다.

 

우선 쿼리에서는 대표적인것은 Pivot 기능 입니다. 그리고 Flash Back 기능도 사용 할 수 없겠죠.

Clustered Index를 사용 할 수 없습니다. Parallel DML 또한 사용 할 수 없습니다.

Oracle이 자체적으로 가지고 있는 Job Scheduler도 사용 할 수 없습니다.

 

 

 

그럼 반대로 PostgreSQL에서는 되지만 Oracle에서 되지 않는것도 있습니다.

Row constructor 기능과 Join UPDATE 기능을 사용 할 수 있습니다.

Unnest 기능도 사용 할 수 있습니다.

또한 Null을 unique Index를 사용하더라도 복수의 레코드를 저장 할 수 있습니다.

 

기타 또 다른 장점들도 많이 있습니다.

 

이에, 두 DBMS간 간극을 좁히기 위해서 PostgreSQL에는 Orafce라는 Compatible Extension이 있습니다. 

Oracle vs PostgreSQL2

위 그림과 같이 Oracle의 각종 기본 Function들과 DBMS_로 시작하는 시스템 SP들을 별도의 컨버전 없이 사용 할 수 있게 지원 해줍니다. Oracle to PostgreSQL 마이그레이션을 한다면 꼭 필요한 Extension 입니다.

 

그리고, Oracle to PostgreSQL 마이그레이션시 꼭 Check 해보고 넘어가야 할 부분에 대한 설명 입니다.

Oracle vs PostgreSQL3

대표적인것은 Null 처리에 대한 부분과 대소문자 부분, 그리고 Lock모드에 대하여서는 꼭 확인 하고 넘어가야 합니다.

Object type도 잘 살펴 봐야겠죠.

 

이러한 내용들을 참고하셔서 Oracle to PostgreSQL 마이그레이션을 하실나 단순 비교를 하고 싶으실때 착오가 없으시길 바랍니다.

 

감사합니다.

 

 

 

 

by.sTricky