본문 바로가기 주메뉴 바로가기

최신IT소식

쉐어플렉스로 RAC를 보완해서 오라클 환경 고가용성 확보하기 - 3부

관리자 2019-04-10 조회수 34


쉐어플렉스로 RAC를 보완해서 오라클 환경 고가용성 확보하기 - 3부

이전 포스팅에서는 고가용성과 재해 복구의 차이점, 고가용성을 위해 RAC 대신 쉐어플렉스(SharePlex)를 사용하는 방법에 대해 설명했습니다. 이번 포스팅에서는
쉐어플렉스로 RAC를 보완해서 고가용성 환경을 강화하는 방법을 살펴보겠습니다.

 

오라클 RAC 사용 사례

오라클 RAC(Real Application Cluster)를 사용해서 다양한 시나리오를 지원할 수 있습니다. 가능한 몇 가지 시나리오를 자세히 보면 다음과 같습니다.

 

고가용성 : 오라클 RAC는 미션 크리티컬 애플리케이션을 위한 원활한 고가용성 제공을 목적으로 많이 사용됩니다. 노드에 장애가 발생하거나 노드 액세스가 불가능해질 경우 애플리케이션을 다른 노드로 페일오버(faliover)하도록 RAC 클러스터 노드를 구성할 수 있습니다.

 

워크로드 격리 : RAC는 워크로드 격리에도 사용할 수 있습니다. RAC의 각 노드에는 자체 버퍼와 캐시가 있으므로 특정 워크로드의 격리가 가능합니다. 예를 들어, OLTP 환경으로부터 보고를 격리할 수 있습니다.

 

워크로드 균형 조정과 분산 : 워크로드가 오라클 단일 인스턴스의 용량을 초과하는 경우 RAC가 수평 확장 또는 리소스 추가를 위한 효과적인 방편이 될 수 있습니다. RAC는 하드웨어 또는 소프트웨어의 부하 분산을 통해 트랜잭션 워크로드를 환겨으이 모든 또는 일부 노드로 분산할 수 있습니다.

 

RAC의 단점

RAC에는 많은 장점과 함께 몇 가지 단점도 있습니다. 모든 단점은 어느정도 완화가 가능하지만, 예비 전원, 예비 네트워크 등은 완화를 위한 비용이 너무 커서 현실적으로 구현이 어렵습니다.


단일 데이터베이스 : 각 RAC에는 단일 데이터베이스가 있습니다. 이 데이터베이스를 사용할 수 없게 되면 전체 클러스터가 사용 불능 상태가 됩니다. 또한, 모든 데이터가 이 단일 데이터베이스에 저장되므로 다양한 워크로드에 맞춰 최적화할 수 없습니다. 예를 들어, 보고를 지원하기 위해 추가된 인덱스가 업데이트 또는 삽입 성능에 부정적인 영향을 미칠 수 있습니다.

 

인스턴스 결합 : 인스턴스 간의 종속성으로 인해 RAC의 모든 노드는 주 버전이 같아야 하며, 다운타임 없는 패치와 업그레이드가 불가능한 경우가 있습니다.

 

노드 간 블록 이동 : 노드가 모두 동일한 데이터베이스를 공유하므로 ㅇ리반적으로 모든 노드와 데이터베이스 스토리지는 같은 데이터 센터에 위치하면서 네트워크, 전원, 냉각과 같은 인프라를 공유합니다. 이러한 인프라 구성 요소 중 어느 하나가 잘못될 경우 전체 RAC를 사용하지 못하게 될 수 있습니다.

 

쉐어플렉스 솔루션

위에 언급한 모든 위험은 쉐어플렉스를 사용해 RAC 환경을 보완하는 방법으로 손쉽게, 비용 효율적으로 완화할 수 있습니다. 쉐어플렉스가 위에 언급된 각각의 단점을 어떻게 극복하는지 알아봅시다.


단일 데이터베이스 : 쉐어플렉스는 데이터베이스 복제본을 거의 실시간으로 동기화된 상태로 유지합니다. 따라서 데이터베이스가 단일 장애 지점이 될 일이 없습니다. 소스 데이터베이스를 사용할 수 없게 되더라도 애플리케이션은 타겟 데이터베이스로 페일오버해서 계속 작동합니다. “역방향 복제”를 사용해서 타겟 데이터베이스에 적용된 트랜잭션을 캡처한 다음 원본 소스 데이터베이스를 사용할 수 있게 되면 즉시 적용할 수 있습니다. 데이터 손실이 미미하거나 아예 없는, 완전한 작업 연속성이 보장됩니다.

 

타겟 데이터베이스를 소스와 독립적으로 구성할 수도 있습니다. 예를 들어, 원활한 보고 지원을 위해 데이터베이스 블록 크기를 다르게 할 수 있습니다. 또한, 소스의 성능에 영향을 미치지 않으면서 타겟에 부가적인 인덱스를 추가할 수도 있습니다.

 

인스턴스 결합 : 쉐어플렉스 타겟 데이터베이스는 별도의 데이터베이스 인스턴스이므로, 소스와 타겟이 긴밀하게 결합되지 않습니다. 사실 타겟을 보다 저렴한 다른 하드웨어에서 구동할 수 있으며 다른 오라클 버전에서도 구동할 수 있습니다.

 

노드 간 블록 이동 : 쉐어플렉스 타겟 데이터베이스는 별개이며 소스와 결합되지 않으므로 데이터베이스 블록을 사용하기 위한 인스턴스 간 경합이 없습니다.

 

인프라 거리 제한 : 쉐어플렉스는 소스에서 타겟으로 변경 사항을 복제하고 항상 비동기이므로 거리 제한이 없습니다. 타겟은 같은 데이터 센터, 도시 건너편 또는 지구 반대편에도 위치할 수 있습니다.

 

RAC 환경에서 쉐어플렉스 구성하기

쉐어플렉스를 사용해 사일로간을 복제함으로써 한 사일로를 사용할 수 없게 되는 경우에 대비한 복구 가능성을 제공합니다. RAC 환경에서 쉐어플렉스는 클러스터의 한 노드에서 실행됩니다. 따라서 각 사일로의 인스턴스 간에 쉐어플렉스 프로세스를 위한 페일오버도 제공해야 합니다.

 

RAC를 위한 쉐어플렉스 구성 : RAC 환경의 노드 간 페일오버를 위해 쉐어플렉스를 구성하려면 쉐어플렉스 가변 데릭토리에 사용할 공유 디렉토리 설정하기, RAC 노드 간에 이동 가능한 가상 IP 및 호스트 이름 설정하기 등 몇 가지 부가적인 단계가 필요합니다. 이 설정에 관한 자세한 내용은 오라클 소스를 위한 쉐어플렉스 설치 및 설정 가이드에 나와있습니다.

 

사일로 페일오버 구성 : 두 사일로 사이에 쉐어플렉스 복제를 설정하고 나면 전체 사일로를 사용할 수 없게 되는 경우 다른 사일로로 이동하도록 애플리케이션을 구성할 수 있습니다. 이 전 포스팅에서 설명한 바와 같이 스크립트를 사용해서 다른 사일로로 애플리케이션을 옮기는 방법으로도 가능하고, 하드웨어나 소프트웨어 부하 분산을 통해서도 가능합니다.

 

페일오버 프로세스 구성을 완료한 다음에는 가급적이면 프로덕션에 사용하는 것과 동일한 환경에서 모든 부분을 빠짐없이 테스트해야 합니다. 제대로 테스트하려면 필요할 때 프로세스가 작동하는지를 확인해야 합니다.

 

쉐어플렉스를 사용해서 고가용성 및 재해복구 프로세스를 강화하는 방법을 살펴본 이번 블로그 시리즈가 여러분에게 도움이 되었기를 바랍니다. 지난 포스팅의 목록은 다음과 같습니다.

 

RAC 유무와 관계없이 오라클 환경 고가용성 확보하기 - 1부

RAC 유무와 관계없이 오라클 환경 고가용성 확보하기 - 2부

 

쉐어플렉스에 대해 더 자세히 살펴보고 여러분의 환경에서 어떻게 동작하는지 확인하고 싶으시다면 언제든 퀘스트소프트웨어 코리아로 문의 주시기 바랍니다.

 


이전글
중앙화된 로그 관리를 통한 SIEM 최적화 방안 : syslog-ng
다음글
다음글이 없습니다.
  • 등록된 댓글이 없습니다.