유혁의 개발 스토리

[DB] 이중화 HA, OPS, RAC 구성 본문

DB

[DB] 이중화 HA, OPS, RAC 구성

유혁. 2020. 9. 10. 16:25

1. HA 구성 

  HA(High Availability)는 2개의 서버를 이용하여 하나는 Active, 나머지하나는 Standby 상태로 정해놓는다. Active상태의 서버가 모든 부하를 담당하며 장애가 발생하는 경우 Standby 서버가 Active가 되면서 다시 서비스를 정상 작동할 수 있게 해주는 구성이다. 별도의 스토리지를 가지고 있기에 수시로 동기화가 이뤄져야한다. 문제점으로는 서로 싱크가 맞지 않는 상황도 발생할 수 있다. Active서버 서비스가 멈추면 Standby 서버가 활성화 될 때 트랙잭션들이 모두 유실된다는 것이다. 실시간 트랜잭션량이 많은 서비스에는 치명적인 문제이다. 

 

 

HA솔루션이 갖추어야 할 기본기능으로는 

A. 데이터 복제기능

- 1번서버에서 장애 발생 시, 2번 서버를 바로 서비스하기위해서는 양쪽의 데이터가 항상 100% 동일해야하는 무결성을 보장해야한다. Data Replication 기능이 반드시 필요하다.

 

B. 장애 감시기능

- 네트워크 장애

- OS 및 서비스 프로그램 장애

- 서버 하드웨어 장애

 

장애를 감시할 수 있는 Agent는 각각 서버에 설치되어야 하며, 1번서버는 2번서버를 감시, 2번서버는 1번서버를 상호감시하여 고가용성을 유지하게 된다. 1번서버 문제발생 시 2번서버로 서비스가 자동전환 되기 위해 필수적인 기능이다.

 

장점 : 서비스의 연속성을 보장한다.

단점 : 실시간 데이터 복제, 바이러스가 복제가되어 감염을 전이시길 수 있음. 백업 솔루션 도입이 필요할 수 있음.

 

 

 

 

2. OPS(Oracle Parallel Server)

  HA구성은 Active, Standby 구성이지만 OPS구성은 인스턴스가 모두 Active 상태로 동작하기에 이론적으로는 부하를 50% 분산할 수 있고, 서비스 속도도 두배 빨라질 수 있다. 하나의 스토리지를 사용하므로 동기화에 문제가 없다.

 

 

장점 : 부하 방지, 서비스 속도 향상, 동기화 문제 없음, 하나의 서비스가 중단되는 경우 예방

단점 : RAC Ping 

 

* RAC Ping

 : 같은 사용자가 각각의 서버에 동시접속 하였을 경우 인스턴스1에서 변경완료된 데이터를 인스턴트2로 가져오기위해서는 디스크에 저장 후 복사하여야함. 서로 다른 인스턴스에서 참조하기위해서는 disk에 저장한 후 다시 불러와야 하는 문제가 발생.

 

 

 

 

3. RAC구성

  RAC(Real Application Cluster)는 RAC Ping 문제가 개선되어 성능이 크게 향상된 것으로 oracle9i 버전부터 서로 다른 인스턴스에서 변경된 데이터를 디스크를 거치지 않고 바로 인스턴스로 가져올 수 있는 기능인 Cache Fusion이라는 기능이 사용된다.

 

 

 

* public network(public 망): ip 3개 중 관리자가 유지, 보수할 때 쓰는것으로, public망에 붙어쓰는게 vip인데, service ip임.

* inter connect = private network(private망): instance1과 instance2를 연결하는 망.

* cache fusion: instance1에 있는 데이터와 instance2에 있는 데이터를 서로 즉시 볼 수 있고, 어떤 물리적인 instance에서 작업을 하든지 내용이 구분없이 섞여 있으므로 cache fusion이라고 부릅니다.

 

 

 

 

 

참고자료

greatepig.tistory.com/14

www.sharedit.co.kr/posts/53

12bme.tistory.com/322

rosebud90.tistory.com/entry/Oracle-RAC%EB%9E%80