Oracle Database/Training

2장. High Availability

수상한 김토끼 2025. 3. 6. 15:24

2.1 오라클 HA 아키텍처에서 발생하는 다양한 유형의 다운타임 및 대응 솔루션

  • Unplanned Downtime (계획되지 않은 다운타임)
    • System Failures (시스템 실패)
      • HW Failure (하드웨어 실패 ): 서버, 디스크, 네트워크 장비 등의 하드웨어 고장으로 인해 발생하는 다운타임
      • OS Failure (운영 체제 실패): 운영 체제의 오류, 충돌, 또는 예상치 못한 종료로 인해 발생하는 다운타임
      • 대응 솔루션: RAC(Real Application Clusters) 및 Data Guard를 사용하여 시스템 실패 시에도 다른 노드로 서비스를 즉시 전환하여 다운타임을 최소화
    • Data Failures (데이터 실패)
      • Storage Failure (저장소 실패): 데이터 저장 장치(디스크, 스토리지 시스템)의 고장으로 인해 발생하는 다운타임
      • Human Error (인적 오류): 데이터베이스 관리자나 사용자의 실수로 인해 발생하는 다운타임
      • Corruption (데이터 손상): 데이터 파일이나 데이터베이스 객체가 손상되어 발생하는 다운타임
      • Site Failure (사이트 실패): 데이터 센터나 전체 시스템이 물리적인 재해(화재, 지진 등)로 인해 발생하는 다운타임
      • 대응 솔루션: ASM(Automatic Storage Management)을 사용하여 저장소 오류를 방지하고, Flashback, RMAN Backup, Data Guard, GoldenGate를 사용하여 데이터 복구 용이성 확보 및 손실 최소화
  • Planned Downtime (계획된 다운타임)
    • System Changes (시스템 변경)
      • SW Patch Apply (소프트웨어 패치 적용): 데이터베이스 소프트웨어나 관련 소프트웨어에 패치를 적용하기 위해 발생하는 다운타임
      • OS Patch Apply (운영 체제 패치 적용) 운영 체제에 패치를 적용하기 위해 발생하는 다운타임
      • 대응 솔루션: Rolling Patches 및 Rolling Upgrades를 사용하여 시스템 변경 시에도 서비스를 중단하지 않고 연속적으로 운영가능
    • Data Changes (데이터 변경)
      • Data Reorg (데이터 재구성): 데이터베이스 객체의 구조를 변경하거나 데이터를 재구성하기 위해 발생하는 다운타임
      • Data Migration (데이터 마이그레이션): 데이터를 다른 시스템이나 데이터베이스로 이전하기 위해 발생하는 다운타임
      • 대응 솔루션: Online Redefinition을 사용하여 데이터 변경 시에도 서비스를 중단하지 않고 온라인 상태에서 작업 수행가능

2.2 RAC (Real  Application Clusters)

2.2.1 HA (Active & Stanby) vs RAC

  • Active & Standby (HA 구성)
    • 단일 활성 서버: 하나의 서버(Server A)만 활성화되어 서비스를 제공하고, 다른 서버(Server B)는 대기(Standby) 상태로 유지
    • 서버 실패 시 대기 서버 활성화: 활성 서버에 장애가 발생하면 대기 서버가 활성화되어 서비스를 이어받음
    • 대기 서버 자원 유휴화: 대기 서버는 평상시에는 유휴 상태로 유지되어 자원 활용도 낮음
    • OS 클러스터 기반 페일오버 (과거): 과거에는 OS 클러스터가 페일오버 역할을 수행했지만, 오라클 11g부터는 Grid Infrastructure가 페일오버 역할 대체
    • 비공유 환경: 스토리지 자원이 공유되지 않으므로, 페일오버 시 대기 서버에서 스토리지 마운트 필요
    • DB 및 AP 재기동 필요: 페일오버 후 데이터베이스와 애플리케이션 재기동 필요
    • 수분~수십 분 다운타임 발생: 페일오버 과정에서 수분에서 수십 분의 다운타임 발생
  • Active & Active (RAC 구성)
    • 다중 활성 서버: 여러 서버(Server A, Server B 등)가 동시에 활성화되어 서비스 제공
    • 로드 밸런싱: 여러 서버가 작업을 분산 처리하여 성능을 향상할 수 있음
    • 서버 실패 시 서비스 연속성 유지: 일부 서버에 장애가 발생해도 다른 서버들이 서비스를 계속 제공하여 다운타임 최소화
    • 공유 스토리지 사용: 모든 서버가 공유 스토리지를 사용하여 데이터 일관성 유지
    • Cache Fusion: 서버 간 데이터 블록 공유 및 동기화를 통해 성능 향상
    • Transparent Application Failover (TAF): 애플리케이션 연결이 자동으로 다른 서버로 전환되어 사용자에게 투명한 페일오버 제공
특징 HA 구성 RAC 구성
활성 서버 수 1개 여러 개
자원 활용 도 낮음 높음
페일오버 속도 느림 (수분~ 수십 분) 빠름 (TAF 사용 시 투명)
스토리지 비공유 공유
복잡성 낮음 높음
비용 낮음 높음

 

2.2.2 오라클 RAC  환경의 작동 방식과 장점

  • 왼쪽 그림 (정상 작동 시)
    • Active & Active 상태: 모든 서버(Server A, Server B)가 활성화되어 서비스 제공
    • 로드 밸런싱: 여러 서버가 작업을 분산 처리하여 성능 향상
    • 자원 효율적 활용: 모든 서버가 활성화되어 자원을 효율적으로 활용
  • 오른쪽 그림 (장애 발생 시)
    • 장애 발생 노드 제외 서비스 지속: Server A에 장애가 발생하더라도 Server B가 서비스를 계속 제공하여 다운타임 최소화
    • AP 서버 재접속: 장애 발생 노드에 연결된 애플리케이션 서버(AP 서버)는 재접속만으로 서비스 지속
    • DB 재기동 및 스토리지 마운트 불필요: RAC는 공유 스토리지를 사용하므로, 장애 발생 시 데이터베이스를 재기동하거나 스토리지를 마운트 할 필요 없음
  • RAC (Real Application Clusters) 환경에서 데이터 버퍼 캐시 (Data Buffer Cache)는 각 인스턴스 간에 데이터를 전달해야 하므로 인터커넥트 (interconnect) 속도가 매우 중요
    • 인터커넥트의 역할
      • 데이터 블록 전달: RAC 환경에서 각 인스턴스는 자체적인 데이터 버퍼 캐시를 가지고 있으며, 한 인스턴스에서 데이터 블록을 요청했는데 해당 블록이 다른 인스턴스의 버퍼 캐시에 있는 경우, 인터커넥트를 통해 해당 블록을 전달받음
      • Cache Fusion (캐시 퓨전): 인스턴스 간 데이터 블록 전달을 효율적으로 처리하는 기술
      • Global Cache Service (글로벌 캐시 서비스): 데이터 블록의 일관성을 유지하고 인스턴스 간 동기화를 관리
    • 인터커넥트 속도의 중요성
      • 성능 영향: 인터커넥트 속도가 느리면 데이터 블록 전달 시간이 길어져 전체 시스템 성능 저하 발생
      • 전용 스위치 구성 필요: 높은 성능을 위해 인터커넥트 전용 스위치를 구성을 권장
      • 네트워크 구성: 고속 네트워크 인터페이스 (예: 10 GbE 이상)와 저지연 네트워크 프로토콜 (예: InfiniBand) 사용 권장

2.2.3 오라클 RAC 아키텍처

  • RAC 아키텍처 주요 구성 요소
    • Grid Infrastructure:
      • RAC 환경의 핵심 기반 소프트웨어
      • Oracle Clusterware와 ASM (Automatic Storage Management)으로 구성
      • 클러스터 관리, 스토리지 관리, 네트워크 관리 기능 제공
    • Oracle Clusterware:
      • 클러스터 노드 간의 통신 및 관리 담당
      • 노드 추가/삭제, 장애 감지, 리소스 관리 등의 기능 수행
      • 장애 발생 시 서버 간의 Node Fencing을 수행하여 데이터 무결성 보호
      • Oracle 10g부터 도입되었으며, Oracle 11gR2까지는 3rd Party Cluster와 함께 사용되었음
      • 12c부터는 Grid Software에서 관리하는 HAC (High Availability Cluster) Listener의 역할 수행
      • VIP (Virtual IP) 구성 및 관리 담당
      • 클러스터 노드 간 리소스의 위치 확인 및 리소스 간 의존성 구성 기능 제공
    • ASM (Automatic Storage Management):
      • 기존 LVM (Logical Volume Manager) 및 Raw Device를 대체하는 스토리지 관리 기능
      • Oracle 10g에서 도입되었으나, Oracle 11g까지는 주로 Raw Device가 사용
      • 12c부터 Raw Device가 지원 중단되면서 ASM과 CFS (Cluster File System)만 사용 가능
      • ASM Diskgroup/Disk/File/Instance 등의 스토리지 객체 관리
      • 동일 서버 내 여러 DB instance가 하나의 ASM instance를 공유할 수 있음
    • 공유 스토리지 (Shared Storage):
      • 모든 RAC 노드가 공유하는 스토리지 영역
      • 데이터 파일, 컨트롤 파일, 리두 로그 파일 등을 저장
      • ASM에 의해 관리됨
    • OCR (Oracle Cluster Registry) / Voting Disks:
      • Oracle Clusterware에서 사용하는 파일
      • OCR: Clusterware의 메타 저장소로, 클러스터 리소스 정보 등을 저장
      • Voting Disks: 클러스터 노드 간의 디스크 Heartbeat 용도로 사용되며, I/O timeout 발생 시 일부 노드가 다운될 수 있음
    • 클러스터 인터커넥트 (Cluster Interconnect):
      • 클러스터 노드 간의 통신을 위한 네트워크
      • 고속 네트워크 (예: InfiniBand)를 사용하여 데이터 블록 전송 성능을 높임
    • 공용 네트워크 (Public Network):
      • 클라이언트가 데이터베이스에 접속하는 데 사용하는 네트워크
      • VIP (Virtual IP)를 통해 접속

2.2.4 오라클 RAC Clusterware

  • Oracle Clusterware Overview (오라클 클러스터웨어 개요)
    • Grid Infrastructure의 구성 요소: 클러스터웨어는 Grid Infrastructure에 포함된 RAC 노드를 클러스터링 하기 위한 솔루션
    • Grid Infrastructure의 중심 기능: 오라클 Grid Infrastructure의 중심이 되는 기능
    • ASM과 통합: ASM (Automatic Storage Management)과 통합되어 있음
    • VIP 생성 및 관리: RAC에서 사용되는 VIP (Virtual IP)를 생성 및 관리
    • 통합 인터페이스 제공: 전체 노드 리소스 제어를 위한 통합 인터페이스 제공
    • Split Brain 해결: 노드 장애 시 Split Brain 문제 해결
  • 이미지 구성 요소
    • Network: 클라이언트가 데이터베이스에 접속하는 데 사용하는 네트워크
    • Interconnect: 클러스터 노드 간의 통신을 위한 네트워크
    • Users: 데이터베이스를 사용하는 클라이언트
    • Oracle Clusterware: 클러스터 노드 간의 통신 및 관리를 담당하는 소프트웨어
    • Storage Network: 공유 스토리지를 연결하는 네트워크

  • 리소스 종류:
    • VIP (Virtual IP): 클러스터 환경에서 클라이언트 접속을 위한 가상 IP 주소
    • Listener: 클라이언트 연결 요청을 수신하고 데이터베이스로 연결을 중재하는 프로세스
    • Public Network Monitoring: 공용 네트워크의 상태를 모니터링
    • SCAN (Single Client Access Name) Listener: 클라이언트가 RAC 데이터베이스에 접속할 때 사용하는 단일 접속 이름
    • SCAN VIP: SCAN Listener가 사용하는 가상 IP 주소
    • ASM (Automatic Storage Management): 오라클 데이터베이스 전용의 스토리지 관리 시스템
    • ASM Data Group: ASM 디스크 그룹을 관리
    • Database: 데이터베이스 인스턴스를 관리
    • Instance: 데이터베이스 인스턴스를 관리
  • 리소스 상태 확인 명령어: crsctl stat res -t 명령어를 사용하여 리소스의 상태를 확인가능
  • 리소스 상태 정보:
    • Name: 리소스 이름
    • Target State: 목표 상태 (ONLINE, OFFLINE)
    • Server: 리소스가 실행 중인 서버
    • State details: 리소스의 상세 상태 (STABLE 등)

  • 스플릿 브레인 (Split Brain) 개념
    • 정의: 클러스터 노드 간의 Heartbeat 네트워크가 단절된 상태에서 노드들이 여전히 작동하는 상황
    • 문제점: 각 노드가 독립적으로 작동하면서 데이터 불일치(Data Corruption)가 발생할 수 있음
    • 해결 방법: 데이터 정합성을 위해 클러스터 내 일부 노드를 제거(Eviction)해야 함
  • IO Fencing (IO 펜싱)
    • 정의: 스플릿 브레인 상황에서 제거(Evicted)된 노드가 공유 디스크에 접근하지 못하도록 IO를 차단
    • 목적: 데이터 손상 방지
  • IO Fencing 방법
    • STONITH (Shoot The Other Node In The Head): 정상적인 노드가 문제가 있는 노드를 강제로 Shutdown 하는 방식
    • Self-fencing: /etc/init.d/init.cssd를 스스로 수행하여 리부트 하는 방식

2.2.5 오라클 RAC TAF (Transparent Application Failover) / CTF (Connection Time Failover)

 

  • CTF (Connection Time Failover) 개요
    • 사용자 재연결 필요: RAC 환경에서 일부 인스턴스가 다운되었을 때, 사용자가 직접 연결을 재시도해야 함
    • TNS 설정 기반: TNS(Transparent Network Substrate)에 기술된 IP 주소 중 접속 가능한 인스턴스로 연결됨
    • 단순 연결 전환: 단순히 연결을 다른 인스턴스로 전환하는 기능만 제공

  • TAF (Transparent Application Failover) 개요
    • 자동 세션 복구: 세션이 끊기더라도 SQL*Net이 자동으로 살아있는 노드로 세션을 재연결됨 (일부 세션 제외)
    • 데이터 변경 없는 세션 복구: 조회(SELECT) 또는 유휴(IDLE) 상태의 세션은 자동으로 복구
    • 데이터 변경 트랜잭션 롤백: 데이터 변경이 있는 트랜잭션은 재접속이 필요하며, 변경된 데이터는 자동으로 롤백
    • 애플리케이션 투명성: 애플리케이션은 장애 발생을 인지하지 못하고 계속 작동할 수 있음
    • 작업 지속: 실패한 노드의 질의 작업에 대해서 나머지 노드가 작업 지속
    • 자동 페일오버: 페일오버 작업이 자동으로 진행
    • DML 롤백 및 예외 처리: Update/Insert/Delete 등 DML은 롤백되므로 애플리케이션에서 예외 처리 필요
    • JDBC Thin 미지원: JDBC Thin 드라이버는 TAF를 지원하지 않음
기능 CTF TAF
세션 복구 방식 사용자 재연결 자동 세션 복구
지원 범위 모든 세션 데이터 변경 없는 세션 자동 복구
애플리케이션 영향 재연결 코드 필요 투명한 장애 처리
트랜잭션 처리 재연결 후 수동 처리 자동 롤백 및 재연결 후 수동 처리

 

  • RAC 환경에서 TNSNAMES.ORA 파일 설정 시, PUBLIC IP 대신 VIRTUAL IP(VIP)를 사용하면 장애 발생 시 클러스터가 더 빠르게 감지하고 페일오버를 수행하여 서비스 연속성을 높일 수 있음
    • 클러스터웨어는 VIP의 상태를 지속적으로 모니터링
    • VIP는 클라이언트에게 고정된 접속 주소를 제공
    • 노드 장애 시에도 클라이언트는 VIP를 통해 계속해서 데이터베이스에 접속할 수 있음
    • PUBLIC IP를 사용하는 경우, 클라이언트는 장애 발생 노드의 IP 주소 변경필요
    • SCAN VIP를 사용하면 클라이언트 연결 요청을 클러스터 내의 활성 노드에 분산이 가능하며 RAC 데이터베이스의 성능과 가용성을 향상

2.3 오라클 Data Guard (Active Data Guard)

  • RAC (Real Application Clusters)
    • 목적: 서버 이중화 및 서버 HW/SW 장애 대비
    • 구조: 모든 노드가 Active-Active 구조로 동일한 작업 수행
    • 작동 방식: Interconnect를 통해 노드 간 데이터를 공유하고 동기화
  • Data Guard
    • 목적: 디스크 이중화 및 재난 대비
    • 구조: Active-Standby 구조로 운영 시스템에서만 서비스 제공 (일반 Data Guard)
    • Active Data Guard: Standby 데이터베이스에서 조회 서비스를 제공
    • 작동 방식: Redo 로그 파일을 DR 센터의 Standby 데이터베이스로 전송하여 데이터 동기화
    • Data Guard Broker: Data Guard 생성, 관리, 모니터링을 중앙에서 관리 가능
    • Switchover: 개발 또는 테스트 목적으로 주 센터와 DR 센터의 역할 전환
    • Failover: 주 센터에 장애가 발생했을 때 DR 센터를 주 센터로 전환 (주 센터는 더 이상 사용 불가)
비교항목 RAC (Real Application Clusters) Data Guard (Active Data Guard)
솔루션 사용 목적 서버 이중화 / 서버 HW, SW 장애 대비 디스크 이중화 / 재난 대비
서비스 수행범위 모든 노드 Active - Active 구조로 동일 작업 수행 가능 Active-Standby 구조로 운영 시스템에서만 서비스 가능 (일반 DG) <br> Active Data Guard 환경인 경우 Standby Database 조회 서비스 가능
데이터 동기화 방식 Interconnect를 통한 데이터 블록 공유 Redo 로그 파일 전송
장애 복구 방식 노드 간 Failover DR 센터로 Failover
데이터 손실 가능성 거의 없음 장애 발생 시 일부 데이터 손실 가능성 존재

 

  • 스토리지 원격 복제
    • 복제 방식: 운영 DB의 모든 데이터 파일, 컨트롤 파일, 리두 로그 파일 등을 DR 사이트로 복제
    • 데이터 손상 전파: 운영 DB에서 데이터 손상이 발생하면 DR 사이트로도 전파
    • 네트워크 대역폭 소비: 모든 데이터 변경 사항을 복제하므로 네트워크 대역폭 소비가 많음
    • DR 사이트 활용: DR 사이트는 단순 복제본 역할만 수행하며, 실시간 쿼리나 백업 등 다른 용도로 활용할 수 없음
  • Data Guard (Active Data Guard)
    • 복제 방식: 운영 DB의 리두 로그 파일만 DR 사이트로 전송하고, DR 사이트에서 리두 로그를 적용하여 데이터를 동기화
    • 데이터 손상 방지: 운영 DB에서 데이터 손상이 발생해도 DR 사이트에서는 검증 과정을 거쳐 전파될 가능성이 훨씬 적음
    • 네트워크 대역폭 소비: 리두 로그만 전송하므로 네트워크 대역폭 소비가 훨씬 적음 (스토리지 복제 대비 27배 감소)
    • DR 사이트 활용: DR 사이트에서 실시간 쿼리 (Active Data Guard 옵션 필요), RMAN 백업 등 다양한 용도로 활용
    • 데이터 블록 손상 자동 복구: 운영 시스템에 데이터 블록 손상 시 자동으로 DR 사이트의 정상 블록 전송 후 자동 복구
비교 항목 스토리지 복제 Data Guard (Active Data Guard)
복제 방식 모든 데이터 파일 복제 리두 로그 파일 전송 및 적용
데이터 손상 전파 전파됨 전파 가능성 낮음
네트워크 대역폭 소비 많음 적음
DR 사이트 활용 제한적 다양함 (실시간 쿼리, 백업 등)
데이터 블록 손상 복구 수동 복 자동 복구

 

  • Active Data Guard 주요 기능
    • Read Only 작업 부하 분담: Standby 데이터베이스를 Read Only 모드로 열어 읽기 전용 작업 분산 처리
    • Real-time Reporting: Standby 데이터베이스에서 실시간 데이터를 조회하여 보고서 생성
    • Fast Incremental Backups: Standby 데이터베이스에서 RMAN의 BCT(Block Change Tracking) 기능을 사용하여 빠른 증분 백업 수행
  • 작동 방식
    • Redo 로그 전송 및 적용: Primary 데이터베이스의 Redo 로그(트랜잭션 로그)를 Active Standby 데이터베이스로 전송하고 적용하여 데이터 동기화
    • Read Only Open 상태 유지: Active Standby 데이터베이스는 Read Only Open 상태를 유지하면서 복구를 지속적으로 수행
  • Active Data Guard 장점
    • DR 사이트 활용도 향상: Standby 데이터베이스를 단순 복제본이 아닌 다양한 용도로 활용하여 DR 사이트의 활용
    • Primary 데이터베이스 부하 감소: 읽기 전용 작업을 Standby 데이터베이스로 분산하여 Primary 데이터베이스의 부하 감소
    • 빠른 백업 및 복구: BCT 기능을 사용하여 빠른 증분 백업 및 복구 수행
항목 Active Data Guard Data Guard
라이선스 유료 무료 (EE 옵션에 포함)
데이터 복구 중 Standby 조회 가능 불가능
자동 블록 복구 가능 불가능
RMAN BCT (Block Change Tracking) 지원 미지원
Data Guard Rolling Upgrade 지원 미지원
DML redirection 지원 미지원

 

'Oracle Database > Training' 카테고리의 다른 글

5장. ACO (Advanced Compression Option)  (0) 2025.03.10
4장. In-Memory  (0) 2025.03.10
3장. Backup and Recovery  (0) 2025.03.06
1장. Administration  (0) 2025.03.05