Oracle Data Guard는 업계에서 가장 효율적이고 포괄적인 엔터프라이즈 데이터 가용성 / 데이터 보호 / 재해 복구 솔루션입니다.
Oracle Data Guard는 하나 또는 그 이상의 스탠바이 데이터베이스를 생성, 관리, 모니터함으로써 장애, 재해, 오류, 손상으로부터 엔터프라이즈 데이터를 보호할 수 있게 하는 관리/모니터링/자동화 소프트웨어 인프라스트럭처입니다.
Data Guard는 운영 데이터베이스에 대해 트랜잭션 일관성을 갖는 스탠바이 데이터베이스를 이용하여 구현됩니다. 이 스탠바이 데이터베이스는 운영 데이터 센터로부터 수천 마일 떨어진 원격 재해 복구 사이트에 위치하고 있을 수도 있습니다. 또는 같은 도시, 같은 캠퍼스, 같은 건물 안에 위치할 수도 있습니다. 계획된, 또는 계획되지 않은 다운타임으로 인해 운영 데이터베이스가 사용 불가한 경우, Data Guard는 스탠바이 데이터베이스를 운영 모드로 전환함으로써 장애에 관련한 다운타임을 최소화하고 데이터 손실을 방지합니다.
Oracle Database Enterprise Edition에 기본 포함된 형태로 제공되는 Data Guard는 Real Application Clusters (RAC), Oracle Flashback, Oracle Recovery Manager(RMAN)과 같은 오라클 고가용성(HA) 솔루션과 함께 조합된 형태로 활용되어 매우 뛰어난 수준의 데이터 보호 및 데이터 가용성 환경을 구현합니다.
Oracle Data Guard의 전반적인 구성이 아래 그림과 같습니다.
Oracle Data Guard 기능적 구성 요소 개요
Data Guard 기본 구성
Data Guard 구성은 기본적으로 하나의 운영(프라이머리) 데이터베이스와 최대 9 대의 스탠바이 데이터베이스를 포함합니다. Data Guard 구성의 모든 데이터베이스는 Oracle Net에 의해 연결되며, 지리적으로 분산되어 있을 수 있습니다. 데이터베이스의 위치에 대한 제약 사항은 없으며, 서로 커뮤니케이션이 가능하기만 하면 됩니다. 하지만 재해 복구를 목적으로 구성하는 경우에는 스탠바이 데이터베이스를 운영 데이터베이스와 지리적으로 떨어진 위치에 설치하는 것이 권장됩니다.
Redo Apply와 SQL Apply
스탠바이 데이터베이스는 운영 데이터베이스의 백업본으로부터 최초 생성됩니다. 스탠바이 데이터베이스의 생성 작업이 완료되면, Data Guard는 운영 데이터베이스의 리두(redo) 데이터를 스탠바이 데이터베이스에 전송하여 적용함으로써, 스탠바이 데이터베이스를 운영 데이터베이스의 (트랜잭션 일관성을 갖는) 복사본으로 유지합니다.
Data Guard는 리두 데이터를 스탠바이 데이터베이스에 적용하고 운영 데이터베이스와의 트랜잭션 일관성을 유지하기 위해 두 가지 방법을 사용합니다. 이 두 가지 방법은 Data Guard가 지원하는 스탠바이 데이터베이스의 종류와도 연관되어 있습니다.
- Redo Apply는 물리적 스탠바이 데이터베이스(physical standby database)를 위해 사용됩니다.
- SQL Apply는 논리적 스탠바이 데이터베이스(logical standby database)를 위해 사용됩니다.
물리적 스탠바이 데이터베이스는 운영 데이터베이스와 물리적으로 동일한 복사본을 유지합니다. 디스크 상의 데이터베이스 구조는 블록 단위까지 운영 데이터베이스와 동일합니다. 인덱스를 포함하는 데이터베이스 스키마 역시 동일합니다. Redo Apply 테크놀로지는 표준적인 오라클 미디어 복구 테크닉을 이용하여 물리적 스탠바이 데이터베이스에 리두 데이터를 적용합니다.
논리적 스탠바이 데이터베이스는 운영 데이터베이스와 동일한 논리적 정보를 관리하지만, 물리적 구조는 다를 수 있습니다. SQL Apply 테크놀로지는 운영 데이터베이스로부터 수신한 리두 로그를 SQL 구문으로 변환하여 스탠바이 데이터베이스에 적용하는 방법으로 데이터베이스의 동기화를 유지합니다. 따라서 논리적 스탠바이 데이터베이스는 SQL이 적용되는 동안에도 쿼리/리포팅을 위해 액세스하는 것이 가능합니다. 이처럼 논리적 스탠바이 데이터베이스는 데이터 보호 목적과 리포팅 목적을 위해 동시에 활용될 수 있다는 장점이 있습니다.
역할 관리
Data Guard 환경에서 데이터베이스의 역할을 운영 역할에서 스탠바이 역할로, 또는 역으로 전환하는 것이 가능합니다. 이 과정에서 데이터 손실은 없으며 다운타임 역시 최소화됩니다. 역할 전환에는 스위치오버(switchover)와 페일오버(failover)의 두 가지 방법이 있습니다. 스위치오버는 운영 데이터베이스와 스탠바이 데이터베이스의 역할을 서로 맞바꾸는 것을 말합니다. 스위치오버는 운영 시스템의 유지보수 작업 과정에서 주로 활용됩니다. 스위치오버 기간 동안, 운영 데이터베이스는 스탠바이 역할을, 스탠바이 데이터베이스는 운영 역할을 담당합니다. 또 전환 과정에서 데이터베이스를 재생성할 필요가 없습니다. 페일오버는 스탠바이 데이터베이스를 운영 역할로 전환하는 "비가역적" 전환 작업을 말합니다. 페일오버는 운영 데이터베이스에 중대한 장애가 발생했을 때에만 수행됩니다. 기존의 운영 데이터베이스는 소실된 것으로 간주되며, Data Guard 구성에서 다시 사용하기 위해서는 새로운 운영 데이터베이스의 스탠바이 서버로서 재생성 작업을 거쳐야 합니다.
Data Guard 보호 모드
어떤 환경에서는 일체의 데이터 손실이 허용되지 않습니다. 또 어떤 경우에는 데이터베이스 성능을 중시하는 반면 데이터 손실은 어느 정도 허용하기도 합니다. Data Guard는 이러한 다양한 요구사항들을 만족하기 위한 3 가지 데이터 보호 모드를 제공합니다:
-
Maximum
Protection—가장 높은 수준의 데이터 보호 환경을 제공하는 모드입니다. 데이터는 운영 데이터베이스로부터 스탠바이 데이터베이스로 동기식으로 전송되며, 스탠바이 데이터베이스 중 적어도 하나에서 리두 데이터가 반환되지 않는 이상 운영 데이터베이스의 트랜잭션은 커밋되지 않습니다. 그리고 구성된 모든 스탠바이 데이터베이스가 접근 불능 상태가 되면, 운영 데이터베이스에서도 프로세싱이 중단됩니다. 이러한 방법으로 데이터의 "무손실"을 보장할 수 있습니다.
-
Maximum
Availability—이 모드는 데이터 손실을 전혀 허용하지 않는다는 점에서는 Maximum Protection Mode와 유사합니다. 하지만 (네트워크 연결 장애 등으로 인해) 스탠바이 데이터베이스가 접근 불능 상태가 되어도, 운영 데이터베이스의 프로세싱은 계속됩니다. 그리고 장애가 해결되면, 스탠바이 데이터베이스는 운영 데이터베이스와 자동으로 동기화됩니다.
-
Maximum
Performance—운영 데이터베이스의 데이터 보호 수준을 다소 희생하는 대신, 보다 높은 수준의 성능을 보장하는 모드입니다. 운영 데이터베이스가 트랜잭션을 실행하는 동안, 리두 데이터는 비동기적으로 스탠바이 데이터베이스에 전송됩니다. 운영 데이터베이스의 커밋 작업은 스탠바이 데이터베이스의 리두 데이터 수신 여부와 관계없이 실행됩니다. 스탠바이 데이터베이스가 접근 불능 상태가 되더라도 운영 데이터베이스의 프로세싱은 계속되며, 따라서 운영 데이터베이스에 미치는 성능 영향이 최소화됩니다.
Data Guard Broker
Oracle Data Guard Broker는 Data Guard 구성의 생성, 관리, 모니터링을 자동화, 중앙집중화한 분산 관리 프레임워크입니다. 모든 관리 작업은 Oracle Enterprise Manager를 통해, 또는 Broker에 의해 별도 제공되는 커맨드라인 인터페이스(DGMGRL)을 통해 수행됩니다.
Data Guard 아키텍처 다이어그램
Oracle Data Guard의 아키텍처가 아래 그림과 같습니다.
Oracle Data Guard 10g Release 2의 새로운 기능
이 섹션에서는 Oracle Data Guard 10g Release 2에 추가된 새로운 기능을 소개합니다. 각 기능에 대한 자세한 설명은 아래 문서를 참고하시기 바랍니다:
Fast-Start Failover
패스트-스타트 페일오버(Fast-Start Failover)는 운영 데이터베이스 장애 시 미리 선택한, 동기화된 스탠바이 데이터베이스에 자동으로 신속하게 페일오버를 수행하는 기능입니다. 이 과정에서 수작업은 전혀 불필요하며 데이터 손실이 전혀 발생하지 않습니다. 패스트-스타트 페일오버가 수행된 후 기존의 운영 데이터베이스가 복구되면, Data Guard는 자동으로 복구된 서버를 스탠바이 데이터베이스로 설정하고 Data Guard 고가용성 구성을 신속하게 복원합니다.
리두 전송 기능의 개선
리두 전송을 위한 아키텍처에 여러 가지 개선 사항이 적용되었으며, 운영 데이터베이스에서 생성된 데이터베이스는 가장 신속하고 효율적인 방법으로 스탠바이 데이터베이스에 전송됩니다.
물리적 스탠바이 데이터베이스를 리포팅 데이터베이스로 쉽게 전환
물리적 스탠바이 데이터베이스를 운영 데이터베이스 모드로 전환하여 리포팅 작업을 위한 읽기/쓰기를 수행한 후, 다시 과거 시점으로 플래시백 처리하여 물리적 스탠바이 데이터베이스로 쉽게 전환할 수 있습니다. 이때 Data Guard는 스탠바이 데이터베이스를 자동으로 운영 데이터베이스와 동기화합니다. 이러한 방법으로 물리적 스탠바이 데이터베이스를 읽기/쓰기 리포팅 및 클로닝(cloning) 작업을 위해 활용할 수 있습니다.
논리적 스탠바이 데이터베이스에 적용된 아카이브 리두 로그 파일을 자동으로 삭제
논리적 스탠바이 데이터베이스에 적용된 아카이브 로그는 자동으로 삭제되어, 논리적 스탠바이 데이터베이스의 스토리지 용량을 절감하고 Data Guard의 관리성을 개선할 수 있게 합니다. 물리적 스탠바이 데이터베이스의 경우, Oracle Database 10g Release 1부터 Flash Recovery Area를 이용한 아카이브 로그 삭제 기능이 제공되었습니다.
Data Guard 구성에 대한 세밀한 모니터링
Oracle Enterprise Manager의 기능 개선을 통해 Data Guard 구성에 대한 세밀한 모니터링 환경을 제공함으로써, 관리자들이 최신 정보를 이용하여 신속하고 정확하게 의사 결정을 수행할 수 있게 합니다.;
Oracle Data Guard 10g Release 1의 새로운 기능
이 섹션에서는 Oracle Data Guard 10g Release 1에 추가된 새로운 기능을 소개합니다. 각 기능에 대한 자세한 설명은 아래 문서를 참고하시기 바랍니다:
새로운 기능 일반
Real Time Apply
Real Time Apply는, 리두 데이터가 Standby Redo Log(SRL)에 기록되는 즉시 (Redo Apply 또는 SQL Apply를 이용하여) 스탠바이 데이터베이스에 반영하는 기능을 의미합니다. 이전 버전의 Data Guard에서는 리두 데이터베이스를 먼저 아카이브 로그의 형태로 스탠바이 데이터베이스에 저장한 후 적용해야 했습니다.
Real Time Apply 기능은 스탠바이 데이터베이스가 운영 데이터베이스와 긴밀하게 동기화될 수 있게 함으로써, (Data Guard SQL Apply 모드를 사용한 경우) 최신 정보에 기반한 실시간 리포팅 환경을 구현합니다. 또 Real Time Apply는 신속한 스위치오버, 페일오버를 가능하게 하며, 결과적으로 계획된, 또는 계획되지 않은 비즈니스 다운타임을 줄이는 효과를 제공합니다.
재해로 인한 영향을 측정하는 방법으로 복구시점목표(RPO, Recovery Point Objective - 재해 상황에서 데이터 손실이 불가피한 시간대)와 복구시간목표(RTO - 재해 상황에서 다운타임이 지속되는 시간)가 자주 사용됩니다. Oracle Data Guard 구성에서 Maximum Protection 모드와 Real Time Apply를 동시에 적용하는 경우, 데이터 손실 가능성을 완전히 차단하고 다운타임 또한 최소화할 수 있습니다. Oracle Data Guard는 업계에서 가장 뛰어난 수준의 RPO, RTO 효과를 제공합니다.
Flashback Database와의 통합
Data Guard in 10g는 Flashback 기능과 통합된 환경을 제공합니다.
이러한 통합을 통해 기대할 수 있는 효과의 하나로 사용자 실수의 복구를 들 수 있습니다. Oracle9i 환경에서 운영 데이터베이스에 발생한 데이터 손상으로부터 스탠바이 데이터베이스를 보호하기 위해서는, Data Guard를 "apply delay" 모드로 구성해야 했습니다. 이와 같이 구성하는 경우 스탠바이 데이터베이스에서 업데이트되는 리포팅 자료가 최신 데이터가 아니며, 또 누적된 로그를 적용하는 시간 때문에 스위치오버/페일오버 작업이 지체될 수 있다는 문제가 있습니다. Data Guard 10g의 Real Time Apply 기능을 이용하면 리포팅의 지연, 스위치오버/페일오버의 지연과 같은 문제를 방지할 수 있습니다. 또 논리적인 오류가 운영/스탠바이 데이터베이스에 모두 반영된 이후라 하더라도, Flashback Database를 이용하여 양쪽 데이터베이스를 이전의 시점으로 신속하게 복구할 수 있습니다.
또 페일오버 과정에서도 통합 기능이 활용됩니다. 10g 이전 버전에서는 페일오버 작업이 수행된 이후 기존의 운영 데이터베이스를 Data Guard 구성에 복귀시키려면, 기존의 데이터베이스를 폐기하고 새로운 스탠바이 데이터베이스를 재생성해야만 했습니다. 데이터베이스의 규모가 큰 경우, 또는 운영/스탠바이 데이터베이스가 수백/수천 마일 떨어져 있는 경우에는 이 작업이 쉽지 않을 수 있습니다. Data Guard 10g는 운영 서버의 장애를 복구하여 바로 마운트한 후, (Flashback Database를 이용하여) 페일오버가 실행된 시점의 SCN으로 플래시백 작업을 수행하고, Data Guard 구성 상 스탠바이 데이터베이스로 전환할 수 있습니다. 따라서 데이터베이스의 재생성 작업은 불필요합니다.
SQL Apply 관련 신기능
"Zero" 다운타임 설치
운영 데이터베이스를 셧다운 또는 중단(quiesce)하지 않고, 운영 데이터베이스의 온라인 백업으로부터 논리적 스탠바이 데이터베이스를 생성하는 기능이 새로 제공됩니다. 운영 시스템을 셧다운할 필요가 없으며 운영 중단이 불필요하므로 다운타임 요소를 완전히 제거할 수 있습니다.
롤링 업그레이드
Oracle Database 10g는 (Oracle Database 10gPatchset 1 이후 버전에 대한) 롤링(rolling) 방식의 데이터베이스 소프트웨어 업그레이드를 지원합니다. 여기에 Data Guard SQL Apply를 함께 활용하는 경우 데이터베이스 다운타임을 완전히 제거할 수 있습니다. 롤링 업그레이드는 1) 먼저 논리적 스탠바이 데이터베이스를 업그레이드하고 2) "믹스드 모드(mixed mode)"에서 업그레이드된 데이터베이스를 테스트, 검증하고, 3) 업그레이드된 데이터베이스로 스위치오버를 수행한 후 4) 마지막으로 기존의 운영 데이터베이스를 업그레이드하는 순서로 진해오딥니다. 믹스드 모드로 실행되는 동안에는, 데이터 손실 없이 업그레이드를 취소하거나 소프트웨어를 다운그레이드할 수 있습니다. 또 업그레이드 과정의 데이터 가용성을 보장하기 위해, 별도의 스탠바이 데이터베이스를 적용할 수도 있습니다.
Data Guard 구성이 지원하는 롤링 업그레이드를 이용하여 유지보수 작업으로 인한 다운타임을 제거하고 24x7 비즈니스 운영을 보장하는 것이 가능합니다.
추가적인 데이터타입 지원
SQL Apply가 추가로 지원하는 데이터 타입이 아래와 같습니다.
- NCLOB
- LONG
- LONG RAW
- BINARY_FLOAT
- BINARY_DOUBLE
- IOT-s (오버플로우 및 LOB 컬럼 제외)
추가적인 데이터타입이 지원됨으로써, 논리적 스탠바이 데이터베이스의 지원 범위를 확장하고 Data Guard의 전반적인 데이터 보호/복구 수준을 개선할 수 있게 되었습니다.데이터베이스 소프트웨어 업그레이드
Enterprise Manager / Data Guard Broker 신기능
RAC 지원
Data Guard Broker, Broker 커맨드라인 인터페이스 (DGMGRL), Enterprise Manager 등을 이용하여 RAC 원본 데이터베이스 및 RAC 스탠바이 데이터베이스를 포함하는 Data Guard 구성을 생성/관리할 수 있습니다. Oracle9i에서 RAC 기반 Data Guard 구성을 관리하려면 SQL*Plus를 사용해야만 했습니다. Data Guard 10g의 Data Guard Broker는 Oracle Clusterware와 직접 인터페이스 하므로, 스위치오버, 페일오버, 보호 모드/상태 변경 등의 Data Guard 작업을 컨트롤하는 것이 가능합니다.
단순화된 브라우저 기반 인터페이스
새롭게 최적화된 Enterprise Manager가 제공하는 브라우저 기반 HTML 인터페이스를 이용하여 Data Guard 구성을 관리하고, 스탠바이 데이터베이스의 전체 라이프사이클을 포괄적으로 관리할 수 있습니다. 새로운 관리 환경이 제공하는 이점이 다음과 같습니다:
- 사용 편의성
- 베스트 프랙티스 기반 관리
- 다른 HA 기능과 통합된 관리 환경 제공
Data Guard의 혜택
- 재해 복구 및 고가용성
Data Guard는 효율적이고 포괄적인 재해 복구, 고가용성 솔루션을 제공합니다. 자동 페일오버 및 편리한 스위치오버 기능을 이용하여 운영/스탠바이 데이터베이스의 역할을 신속하게 전환하고, 운영 데이터베이스에 수반되는 다운타임을 최소화할 수 있습니다.
- 포괄적인 데이터 보호
스탠바이 데이터베이스는 데이터의 손상 및 사용자 실수에 대한 효과적인 대비책을 제공합니다. 운영 데이터베이스의 스토리지 레벨에 발생한 물리적 손상은 스탠바이 데이터베이스로 전달되지 않습니다. 마찬가지로, 운영 데이터베이스의 실행 중단을 초래하는 논리적인 손상 또는 사용자 실수 역시 스탠바이 데이터베이스에 영향을 끼치지 않고 해결 가능합니다. 마지막으로, 스탠바이 데이터베이스가 수신된 리두 데이터를 적용하기 전에 데이터를 검증하므로, 데이터 무결성을 개선할 수 있습니다.
- 시스템 리소스의 효율적인 활용
물리적 스탠바이 데이터베이스는 백업 및 읽기 전용 리포팅을 위해 사용 가능합니다. 따라서 운영 데이터베이스의 귀중한 CPU, I/O 자원을 절약할 수 있습니다. Oracle Database 10g Release 2의 물리적 스탠바이 데이터베이스를 읽기/쓰기가 가능한 데이터베이스로 전환하거나, 다시 물리적 스탠바이 데이터베이스로 쉽게 전환할 수 있습니다. 논리적 스탠바이 데이터베이스는, 운영 데이터베이스와 동기화하는 도중에도 읽기 전용 접근을 허용합니다. 또 논리적 스탠바이 데이터베이스에서 운영 데이터베이스에 의해 업데이트되지 않는 테이블에 읽기/쓰기 작업을 수행할 수도 있습니다. 마지막으로, 논리적 스탠바이 데이터베이스의 리포팅 성능 개선을 위해 인덱스와 materialized view를 추가로 생성하는 것이 가능합니다.
- 가용성/성능 요구사항의 균형을 위한 유연한 데이터 보호 환경 제공
Oracle Data Guard는 "maximum protection", "maximum availability", "maximum performance"의 3 가지 모드를 제공하여 기업의 가용성/성능 요구사항에 따른 유연한 구성을 지원합니다.
- 커뮤니케이션 장애로부터의 보호
운영/스탠바이 데이터베이스 간의 네트워크 연결이 끊어진 경우, 운영 데이터베이스에서 스탠바이 데이터베이스로 리두 데이터를 전송할 수 없게 됩니다. 네트워크 연결이 정상화되면, Data Guard는 그 동안 전송되지 못한 리두 로그를 자동으로 감지하고 동기화에 필요한 아카이브 로그를 스탠바이 데이터베이스에 전송합니다. 따라서 관리자가 별도 작업을 수행하지 않아도 스탠바이 데이터베이스는 운영 데이터베이스와 재동기화 됩니다.
- 단순화된 중앙집중적 관리 환경
Data Guard Broker는 Data Guard 구성에 존재하는 전체 데이터베이스의 관리/모니터링을 자동화합니다. 관리자는 Oracle Enterprise Manager 또는 Broker의 커맨드라인 인터페이스(DGMGRL)을 통해 Data Guard가 제공하는 통합 관리 프레임워크를 활용할 수 있습니다.
- 오라클 데이터베이스와의 통합
Data Guard는 Oracle Database Enterprise Edition에 기본 포함되어 제공됩니다.
|