Contenu connexe
Plus de 정명훈 Jerry Jeong (15)
CDC를 이용한 Active-LiveStandby DB 구축 시 failover 방안
- 1. <Insert Picture Here>
DB Active-LiveStandby 환경에서 HA 역할
정명훈(jerry.jeong@oracle.com)
Data Integration Sales Consulting,
Oracle Korea Ltd.
- 2. DB Active-LiveStandby 환경에서 HA 필요성
• 전제
• GoldenGate를 이용하여 DB를 Active-LiveStandby 형태로 구성하여 Application 서비스를
할 경우 DB에 대한 failover를 수행할 수 있는 HA 솔루션이 필요하다.
• 일반적으로 Oracle RAC와 같은 환경에서는 Oracle Clusterware가 Service IP를 넘겨주는
HA 역할을 담당하지만, GoldenGate를 이용한 Active-LiveStandby 환경에서는 해당
역할을 하는 다른 컴포넌트가 필요하다.
• 구현 방식은 여러 가지가 있으며 이 문서에서 그러한 다양한 구현 방법에 대해 기술한다.
장애 시
standby로
switch
© 2012 Oracle Corporation – Proprietary and Confidential 2/ 총 페이지
- 3. 운영체제 Cluster/HA 기능 이용
• 운영체제 Cluster/HA 기능
• 대부분의 운영체제는 다음과 같이 Clustering 또는 High Availability 기능을 제공한다.
• Oracle Solaris Cluster
• Data Service for Oracle
• Linux Cluster
• Linux HA & Linux Heartbeat
• HP/UX Service Guard
• Toolkit for Oracle
• IBM HACMP
• HACMP SmartAssist for Oracle
• Window MSCS(Microsoft Cluster Server)
• 운영체제 Cluster/HA 활용
• 운영체제 솔루션은 운영 노드 장애 시, Virtual IP(또는 Service IP)를 백업 노드로 넘기는 기능을
가지고 있다. 이 기능을 이용하여 Oracle DB TNS Listner를 백업 DB쪽으로 failover 하여 운영할
수 있다.
• 대부분의 솔루션은 트기 Oracle DB와 같은 즉정 서비스나 애플리케이션의 Health Check를 할 수
있는 기능이 있으며, 그것을 이용하여 일정 기준을 넘어서면 백업 노드로 failover 할 수 있다.
• Active 노드에서 DB 프로세스(인스턴스) 장애 시, 재 기동을 시도하는 기능도 포함
© 2012 Oracle Corporation – Proprietary and Confidential 3/ 총 페이지
- 4. 기타 Cluster/HA 제품 이용
• 특정 운영체제에 종속적이지 않은 Cluster/HA 솔루션
• EMC AutoStart
• Legato 솔루션을 인수해서 이름을 AutoStart로 변경
• LifeKeeper
• Window, Linux 지원
• 그외 기타
• Fujitsu PRIMECLUSTER, IBM Tivoli System Automation for Multiplatforms, NEC ExpressCluster,
Veritas Cluster Server
• 운영체제 Cluster/HA 기능과 유사하게 Oracle DB에 대한 Health Check와 Virtual IP
failover 기능 제공한다.
© 2012 Oracle Corporation – Proprietary and Confidential 4/ 총 페이지
- 5. 네트워크 장비 이용
• 네트워크 장비를 통한 DB Listener failover
• F5 Big-IP LTM(Local Traffic Manager)
• Oracle DB의 FAN(Fast Application Notification) 신호를 받아 능동적으로 failover
• Active 노드 장애 시, DB로부터 FAN 신호를 받아 LiveStandby 노드로 전환한다.
• 또는 TCP Proxy 역할을 통해, Active 노드의 TCP Listener가 응답하지 않을 경우 Active 노드를
dead로 마킹하고 Standby로 failover
• TCP 패킷에 대한 Rewrite 기능이 있어 Oracle SID가 다른 경우에도 failover 가능하다.
• iControl 스크립트를 이용해 DB의 Health Check 구현이 가능하다.
• 기타 L4/L7 장비
• 평소에는 Active 노드에서 DB 요청 처리
• Active 노드 장비 다운이나 Listener fail로 TCP 응답이 안될 경우 기존 노드를 dead로 마킹하고
Standby로 failover
• HA 솔루션에서 제공하는 Virtual IP 기능을 장비에서 제공하는 것과 유사한 효과
• Active-LiveStandby 형태로 DB를 운영할 것이므로 네트워크 장비를 Load-balancing
모드가 아닌 Failover 모드로 운영해야 한다.
© 2012 Oracle Corporation – Proprietary and Confidential 5/ 총 페이지
- 6. DB 자체의 Connection Failover 기능 이용
• DB 자체가 가지고 있는 Connection Failover 기능을 활용하는 방법
• Oracle CTF(Connect Time Failover)
• Type 4 JDBC Driver를 이용하는 경우 Connection 문자열에 Active 노드와 LiveStandby 노드의 Listener IP를
동시에 기술하여 접속하는 방법
• 평소에는 Active 노드로 접속되다가 장애 발생하면, LiveStandby 노드의 Listener로 접속되어 failover 가능
• 단, 일시적인 네트워크 문제가 발생하는 경우에도 LiveStandby에 접속될 수 있으므로 Active와 LiveStandby를
각각 Read/Write와 Read 용도로 분리하는 경우에는 위험성 있음
• Oracle TAF(Transparent Application Failover)
• Type 2 JDBC Driver나 SQL*Net 클라이언트 라이브러리로 접속하는 경우 사용하는 방법
• 접속 시점에만 동작하는 CTF와 달리 접속된 이후에도 노드 간 failover를 할 수 있어 CTF에 비해 유리
• 단, SQL*Net 사용이 가능한 애플리케이션만 지원
• Oracle FAN(Fast Application Notification)
• DB 노드나 인스턴스의 장애를 능동적으로 감지하여 failover를 할 수 있는 방법
• Type 4 JDBC에서도 사용 가능
• 단, 특수 API를 이용하여 구현해야 하므로 애플리케이션 수정이 필요 (또는 지원 가능한 미들웨어 사용해야 함)
• 미들웨어의 Multi Data Source 기능
• 이 방법은 DB 자체의 기능은 아니지만 WebLogic 서버에서 제공 되는 Multi Data Source 기능을 이용하는 것
• Active와 LiveStandby 노드에 대한 커넥션 풀을 미리 만들어 놓고 평소에는 Active 노드의 풀을 사용하다가, 장애가
발생하면 Standby 노드의 풀을 사용하는 방법
• Multi Data Source 기능을 지원하는 미들웨어를 사용해야 함
© 2012 Oracle Corporation – Proprietary and Confidential 6/ 총 페이지
- 7. Oracle Clusterware 이용
• Oracle Clusterware
• Oracle RAC(Real Application Cluster)의 클러스터링 솔루션
• 각종 서비스에 대한 HA 기능, 즉 노드 장애 시 다른 노드로 서비스 마이그레이션 기능 제공
• Virtual IP(Service IP) 기능을 통해 TNS Listener를 백업 노드로 전환할 수 있음
• 11g에서는 SCAN IP 기능을 통해 여러 노드 간 Listener에 대한 load-balancing과 failover 지원
• Oracle RAC 필요
• 노트: 이 방법은 Oracle RAC가 필요하므로 Standalone으로 운영 되는 DB에서는 라이선스
문제로 사용할 수 없음
© 2012 Oracle Corporation – Proprietary and Confidential 7/ 총 페이지
- 8. © 2012 Oracle Corporation – Proprietary and Confidential 8/ 총 페이지
- 9. © 2010 Oracle Corporation – Proprietary and Confidential 9/ 총 페이지