오라클 RAC
1. 개요
오라클 RAC(Real Application Clusters)는 여러 대의 컴퓨터가 단일 데이터베이스에 동시에 접근하여 오라클 RDBMS 소프트웨어를 실행할 수 있도록 하는 클러스터링 기술이다. 여러 인스턴스가 하나의 데이터베이스에 접근하여 응용 프로그램이나 사용자가 단일 조정된 데이터 집합에 접근할 수 있게 하며, 인스턴스 간의 상호 연결을 통해 데이터 동기화를 유지한다. 오라클 RAC의 주요 목표는 인스턴스 수준에서 성능, 확장성, 데이터 복원력 및 고가용성을 제공하는 클러스터 데이터베이스를 구현하는 것이다. 오라클 Clusterware에 의존하여 여러 서버와 데이터 스토리지를 공유하며, Cache Fusion 기술을 통해 각 컴퓨터의 캐시된 메모리 내 데이터를 단일 글로벌 캐시로 융합한다. 오라클 RAC는 공유형 아키텍처를 사용하며, 공유 없음 아키텍처를 사용하는 다른 데이터베이스 시스템들과 경쟁한다.
-
클러스터 컴퓨팅 -
슈퍼컴퓨터
슈퍼컴퓨터는 일반 컴퓨터보다 훨씬 높은 성능을 가진 컴퓨터로, 복잡한 계산과 시뮬레이션을 수행하며, 프로세서, 메모리, 스토리지, 네트워크 등으로 구성되어 병렬 처리를 통해 높은 성능을 구현하고, 군사, 기상 예측, 과학 기술 분야, 인공지능 등 다양한 분야에서 활용되고 있다. -
클러스터 컴퓨팅 -
컴퓨터 클러스터
-
오라클 소프트웨어 -
자바 데스크톱 시스템
-
오라클 소프트웨어 -
스타오피스
스타오피스는 1985년 스타라이터에서 시작하여 다양한 플랫폼으로 확장되고 썬 마이크로시스템즈에 인수되어 OpenOffice.org의 기반이 되었던 오피스 스위트였으나, 오라클에 인수 후 오라클 오픈 오피스로 변경되었다가 판매가 중단되었으며, 워드 프로세서, 스프레드시트, 프레젠테이션 프로그램 등을 포함하고 있었다.
2. 기능
오라클 RAC는 여러 대의 컴퓨터에서 RDBMS 소프트웨어를 실행하여 클러스터링을 제공하고, 단일 데이터베이스에 동시에 접근할 수 있도록 한다. 오라클 RAC 환경에서, 응용 프로그램이나 사용자는 여러 인스턴스 중 하나에 연결하여 조정된 단일 데이터 집합에 접근할 수 있다. 이때, 각 인스턴스는 "상호 연결"을 통해 동기화되어 데이터 접근의 일관성을 유지한다.
2.1. 작동 방식
오라클 RAC는 여러 대의 컴퓨터가 단일 데이터베이스에 동시에 접근하면서 오라클 RDBMS 소프트웨어를 실행할 수 있도록 하여 클러스터링을 제공한다.
RAC가 아닌 오라클 데이터베이스에서는 단일 인스턴스가 단일 데이터베이스에 접근한다. 데이터베이스는 데이터 파일, 제어 파일 및 redo 로그의 모음으로 구성되며 디스크에 위치한다. 인스턴스는 컴퓨터 시스템에서 실행되는 오라클 관련 메모리 및 백그라운드 프로세스의 모음으로 구성된다.
오라클 RAC 환경에서는 2개 이상의 인스턴스가 단일 데이터베이스에 동시에 접근한다. 이를 통해 응용 프로그램 또는 사용자는 두 컴퓨터 중 하나에 연결하여 단일 조정된 데이터 집합에 접근할 수 있다. 인스턴스는 모든 인스턴스가 데이터에 접근할 때 동기화되도록 하는 "상호 연결"을 통해 서로 연결된다.
3. 목표
오라클 RAC의 주요 목표는 클러스터 데이터베이스를 구현하여 인스턴스 수준에서 성능, 확장성 및 데이터의 복원력과 고가용성을 제공하는 것이다.
4. 구현
오라클 RAC는 여러 서버와 데이터 스토리지를 공유하기 위해 인프라 구성 요소인 Oracle Clusterware에 의존한다. FAN(Fast Application Notification) 기술은 다운 상태를 감지한다. RAC 관리자는 `srvctl` 도구를 사용하여 RAC 구성을 관리할 수 있다.
4.1. Cache Fusion
오라클 9 이전에는 네트워크로 클러스터된 오라클 데이터베이스가 데이터 전송 매체로 저장 장치를 사용했다. 즉, 한 노드가 데이터 블록을 디스크에 쓰고 다른 노드가 동일한 디스크에서 해당 데이터를 읽는 방식이었다. 이는 성능 저하라는 내재적인 단점을 가지고 있었다. 오라클 9i는 이 문제를 해결했다. RAC는 클러스터 내부 통신을 위해 전용 네트워크 연결을 사용한다.
RAC의 모든 컴퓨터/인스턴스가 동일한 데이터베이스에 접근하므로, 전체 시스템은 다른 컴퓨터에서 데이터 변경 사항을 조정하여, 컴퓨터가 데이터를 쿼리할 때 다른 컴퓨터가 최근에 해당 데이터를 수정했더라도 최신 버전을 받을 수 있도록 보장해야 한다. 오라클 RAC는 이 기능을 Cache Fusion이라고 부른다. Cache Fusion은 오라클 RAC가 각 컴퓨터에서 물리적으로 별도로 캐시된 메모리 내 데이터를 단일 글로벌 캐시로 "융합"하는 기능을 포함한다.
5. 버전
| 버전 | 설명 |
|---|---|
| 오라클 리얼 애플리케이션 클러스터 12c 릴리즈 1 | 엔터프라이즈 에디션. |
| 오라클 리얼 애플리케이션 클러스터 원 노드(RAC One Node) | 오라클 데이터베이스 11g 릴리즈 2 엔터프라이즈 에디션을 실행하는 단일 노드 설치에 RAC를 적용한다. |
6. 발전 과정
오라클 데이터베이스 9i와 함께 2001년에 소개된 오라클 Real Application Clusters(RAC)는 이전의 오라클 Parallel Server(OPS) 데이터베이스 옵션을 대체한다. 오라클 9i는 대부분의 Unix 환경에서 TruCluster, Veritas Cluster Server, Sun Cluster와 같은 외부 클러스터웨어를 필요로 했지만, 리눅스 및 윈도우에서는 오라클이 무료 클러스터웨어인 'Cluster Ready Services'(CRS)를 제공했다. 오라클 10g부터는 오라클의 클러스터웨어 제품이 모든 운영 체제에서 사용 가능해졌다. 오라클 데이터베이스 10g 릴리스 2(10.2)부터 Cluster Ready Services는 Oracle Clusterware로 이름이 변경되었다. 오라클 10g 이상을 사용할 때, 오라클 Clusterware는 Tru 클러스터를 제외한 대부분의 플랫폼에서 오라클 RAC 작동에 필요한 유일한 클러스터웨어이다.
7. 경쟁 환경
공유 없음 및 공유형 아키텍처는 각각 서로에 대한 장점을 가지고 있어, 데이터베이스 관리 시스템(DBMS) 공급업체와 업계 분석가들은 이 문제에 대해 정기적으로 논쟁을 벌인다. 예를 들어, 마이크로소프트는 SQL Server 2005와 오라클 10g RAC를 비교하는 내용을 제시한다.
오라클사는 IBM SP 및 SP2의 출현과 함께 7.x MPP 버전을 출시하면서 공유 없음 아키텍처 RDBMS를 제공했으며, 여기에서는 가상 공유 드라이브(VSD)를 사용하여 공유 없음 아키텍처에서 공유형 구현을 만들었다.
7.1. Shared-Everything
공유-모든 것 아키텍처는 클러스터 내의 노드 간에 디스크의 데이터와 메모리의 데이터를 모두 공유한다. 이는 어느 것도 공유하지 않는 "공유-없음" 아키텍처와 대조된다.
일부 상용 데이터베이스는 "공유-모든 것" 아키텍처를 제공한다. IBM 메인프레임 운영 체제인 z/OS용 IBM Db2는 IBM이 메인프레임 하드웨어 및 소프트웨어 클러스터링 인프라를 출시한 1990년대 중반부터 고성능 데이터 공유 옵션을 제공해 왔다. 2009년 말, IBM은 AIX에서 DB2 9.8용 공유 디스크 클러스터링 방식인 DB2 pureScale을 발표했는데, 이는 메인프레임에서 Db2 데이터 공유의 기반이 되는 병렬 sysplex 구현을 모방한 것이다.
2008년 2월, 사이베이스는 Adaptive Server Enterprise 클러스터 에디션을 출시했다. 이는 공유-모든 것 설계를 통해 오라클 RAC와 유사하다.
기술적으로는 공유-모든 것이 아니지만, 사이베이스는 또한 분석 및 데이터웨어하우스 애플리케이션에 초점을 맞춘 열 기반 관계형 데이터베이스인 Sybase IQ를 제공하며, 공유 디스크 모드로 실행되도록 구성할 수 있다.
아마존 오로라 및 알리바바 클라우드의 POLARDB와 같은 클라우드 네이티브 데이터베이스는 클라우드 기반 분산 파일 시스템 상에서 "공유-모든 것" 아키텍처로 구현된다.
7.2. Shared-nothing
공유 없음(Shared-nothing) 아키텍처는 클러스터의 노드 간에 디스크의 데이터도 메모리의 데이터도 공유하지 않는다. 이는 둘 다 공유하는 "공유형" 아키텍처와 대조적이다.
공유 없음 아키텍처를 제공하는 경쟁 제품은 다음과 같다.
| 제품명 | 비고 |
|---|---|
| EDB Postgres Distributed | PostgreSQL, EDB Postgres Extended Server 및 EDB Postgres Advanced Server(오라클과의 네이티브 호환성 제공)에 사용 가능 |
| MySQL Cluster | 2009년부터 오라클 소유 |
| ScaleBase | |
| Clustrix | |
| HP NonStop | |
| IBM InfoSphere | 데이터베이스 파티셔닝 기능(이전 DB2 Extended Enterprise Edition)이 포함된 Warehouse 에디션 |
| MarkLogic | |
| Greenplum | |
| Oracle NoSQL Database | |
| Paraccel | |
| Netezza | (일명 Netezza Performance Server) |
| Teradata | |
| Vertica | |
| Apache Cassandra | 광범위한 열 저장소 NoSQL 데이터베이스. |
| Apache HBase | |
| MongoDB | 문서 지향 데이터베이스. |
| Couchbase Server | |
| Riak | |
| SAP HANA | |
| CUBRID |