DB 클러스터링

  • DB 장애 시 가용성을 유지하기 위한 클러스터링 방안
  • Oracle 기준이긴 하지만, 다른 DB에서도 비슷한 옵션이 있는 경우 있음.

 

HA ( High Availability )

  • 같은 장비를 Active 1대 , Standby 1대로 구성해서 Active에 문제 생기면 Standby로 서비스 하는 방식.
  • Active, Standby 각자가 별도 storage를 가지고 있음.

=> Active와 Standby의 데이터 동기화 문제 및 성능 저하

=> Active 가 죽고 Standby로 전환되기 전 그 사이에 발생하는 트랜잭션은 유실됨 - 데이터 불일치. 정합성 bad

 

*** 오라클에서는 데이터 가드 라는 이름으로 제공하고 있다.

*** 위와 같은 문제점 때문에 OPS 방식이 8i 버전까지 사용되었음.

 

OPS ( Oracle Parallel Serve )

  • storage는 하나만 두고, 오라클 인스턴스를 instance1, instance2 두개로 띄우는 방법
  • instance 하나에서 장애 발생 시 다른 instance 통해 접근하면 된다.
  • 문제점 RAC ping?
    • instance1 에서 commit한 데이터가 instance2에 보이려면 일단 storage에 저장되고, 저장된 데이터를 instance2에서 복사해가야 함.
    • 따라서 변경 사항이 instance2에 적용되기까지, 디스크에 쓰고 가져오는 작업이라 딜레이가 좀 있음.

 

*** 오라클 9i 부터는 이를 개선한 RAC 사용

 

RAC ( Real Application Cluster )

  • storage는 하나만 두고, 스토리지를 관리하는 오라클 인스턴스를 여러개 두는 것은 OPS와 동일.
  • 다만 다른 instance에서 변경한 데이터를 스토리지 저장, 복사 과정 없이 instance 끼리 바로 동기화 할 수 있는 Cache Fusion 지원
  • InterConnect : Private network로 instance 끼리 연결하여 동기화

 

 

참고

https://12bme.tistory.com/322 완전 상세하게 나와 있음.