Открыть сервис

Data Guard

Data Guard — это технология репликации и защиты данных, разработанная корпорацией Oracle, предназначенная для обеспечения высокой доступности (High Availability, HA), аварийного восстановления (Disaster Recovery, DR) и защиты от потери данных в базах данных Oracle. Data Guard позволяет создавать и поддерживать одну или несколько синхронных или асинхронных копий (резервных баз данных) производственной базы данных, называемых «резервными» (standby), и автоматически переключать нагрузку на них в случае отказа основной базы данных.

История

Технология Data Guard была впервые представлена компанией Oracle в 2001 году в составе версии Oracle9i Database (9.0.1). До этого функции репликации и резервирования в Oracle реализовывались через механизмы Standby Database (начиная с Oracle 7.3), которые требовали ручного управления и не обладали автоматическим переключением. Data Guard стал эволюционным развитием этой концепции, предложив автоматизированное управление резервными базами, поддержку нескольких типов репликации и встроенные механизмы переключения (switchover и failover).

В последующих версиях Oracle Database функциональность Data Guard расширялась:

  • Oracle 10g (2003): Добавлена поддержка асинхронной репликации в реальном времени (Real-Time Apply) и улучшена производительность передачи журналов.
  • Oracle 11g (2007): Внедрена технология Active Data Guard, позволяющая открывать резервную базу в режиме «только для чтения» (read-only) для выполнения запросов, отчетов и резервного копирования, что значительно повысило утилизацию резервного сервера.
  • Oracle 12c (2013): Добавлена поддержка многопотоковой репликации (Multi-Instance Redo Apply) для Oracle RAC, а также возможность использования Data Guard для контейнерных баз данных (CDB) и подключаемых баз данных (PDB).
  • Oracle 18c/19c (2018/2019): Внедрены функции автоматического исправления блоков (Automatic Block Repair) и улучшенная интеграция с Oracle Fleet Management.
  • Oracle 21c (2021): Добавлена поддержка синхронной репликации на уровне блоков (Block Change Tracking) и улучшена работа с облачными средами Oracle Cloud Infrastructure (OCI).

Архитектура и принцип работы

Data Guard основан на механизме передачи журналов повторного выполнения (redo logs) от основной базы данных (primary database) к резервной (standby database). Основная база генерирует записи изменений в журналы redo, которые затем передаются по сети и применяются к резервной базе, поддерживая её в актуальном состоянии.

Основные компоненты

  1. Primary Database (Основная база): Производственная база данных, которая принимает все транзакции и генерирует журналы redo.
  2. Standby Database (Резервная база): Копия основной базы, поддерживаемая в синхронном или асинхронном состоянии. Может быть физической (Physical Standby) или логической (Logical Standby).
  3. Data Guard Broker: Утилита управления конфигурацией Data Guard, предоставляющая интерфейсы командной строки (dgmgrl) и графические (Enterprise Manager).
  4. Redo Transport Services: Сервисы, отвечающие за передачу журналов redo от основной базы к резервной.
  5. Redo Apply Services: Сервисы, применяющие полученные журналы к резервной базе для синхронизации.

Типы репликации

Data Guard поддерживает два основных режима репликации, определяющих степень защиты данных и производительность:

  • Синхронная репликация (Maximum Protection): Транзакция на основной базе фиксируется только после того, как журнал redo будет записан как на основную, так и на резервную базу. Обеспечивает нулевую потерю данных (zero data loss), но может снижать производительность из-за задержек сети.
  • Асинхронная репликация (Maximum Performance): Основная база фиксирует транзакцию немедленно, а журналы передаются на резервную базу асинхронно. Обеспечивает высокую производительность, но допускает потерю данных в случае сбоя (обычно в пределах нескольких секунд).

Также существует режим Maximum Availability, который является гибридным: транзакции фиксируются синхронно, но при недоступности резервной базы основная продолжает работу, переходя в асинхронный режим.

Типы резервных баз

  1. Physical Standby Database (Физическая резервная база): Точная блочная копия основной базы. Журналы redo применяются напрямую, что делает базу идентичной основной на уровне блоков. Может быть открыта в режиме «только для чтения» (Active Data Guard) для выполнения запросов.
  2. Logical Standby Database (Логическая резервная база): Содержит те же логические данные, но физическая структура может отличаться. Журналы redo преобразуются в SQL-операторы и применяются к резервной базе, что позволяет использовать её для выполнения запросов и даже для обновлений (при определённых ограничениях).

Применение

Data Guard широко используется в организациях, где требуется высокая доступность и защита данных, особенно в финансовом секторе, телекоммуникациях, государственных учреждениях и крупных корпорациях.

Основные сценарии использования

  • Аварийное восстановление (Disaster Recovery): Обеспечение непрерывности бизнеса в случае отказа основного дата-центра. Резервная база может находиться в другом географическом регионе, что позволяет пережить катастрофы (пожары, наводнения, отключения электроэнергии).
  • Высокая доступность (High Availability): Автоматическое переключение на резервную базу при сбое основной. Data Guard поддерживает два типа переключения:
  • Switchover: Плановое переключение, при котором основная и резервная базы меняются ролями без потери данных. Используется для обслуживания или обновления.
  • Failover: Аварийное переключение на резервную базу при недоступности основной. Возможна потеря данных в зависимости от режима репликации.
  • Балансировка нагрузки: С помощью Active Data Guard резервная база может использоваться для выполнения запросов на чтение (SELECT), отчётов и резервного копирования, снижая нагрузку на основную базу.
  • Тестирование и разработка: Резервная база может быть временно «отключена» от синхронизации и использована для тестирования обновлений, миграций или разработки без риска для производственной среды.

Преимущества и ограничения

Преимущества

  • Нулевая потеря данных: При синхронной репликации Data Guard гарантирует, что ни одна зафиксированная транзакция не будет потеряна.
  • Автоматизация: Data Guard Broker позволяет управлять переключением и мониторингом через единый интерфейс.
  • Гибкость: Поддержка различных типов резервных баз и режимов репликации позволяет адаптировать технологию под конкретные требования.
  • Интеграция с Oracle: Data Guard полностью встроен в Oracle Database, не требует стороннего ПО и поддерживается Oracle Support.

Ограничения

  • Зависимость от сети: Синхронная репликация требует низкой задержки сети (обычно менее 10 мс) для приемлемой производительности.
  • Сложность настройки: Конфигурация Data Guard, особенно в распределённых средах, требует квалифицированного администратора баз данных (DBA).
  • Лицензирование: Active Data Guard (возможность открытия резервной базы для чтения) требует отдельной лицензии Oracle Active Data Guard, что увеличивает стоимость.
  • Ограничения логической репликации: Logical Standby не поддерживает все типы данных (например, BFILE, ROWID) и может иметь задержки при преобразовании SQL.

Сравнение с альтернативами

Data Guard является проприетарной технологией Oracle и не имеет прямых аналогов в других СУБД. Однако существуют схожие решения:

  • Microsoft SQL Server Always On Availability Groups: Обеспечивает синхронную и асинхронную репликацию, автоматическое переключение и поддержку чтения на резервных репликах.
  • PostgreSQL Streaming Replication: Бесплатная технология асинхронной репликации, поддерживающая чтение на резервных серверах, но без встроенного автоматического переключения.
  • MySQL Group Replication: Обеспечивает синхронную репликацию с автоматическим переключением, но требует настройки кластеризации.

Интересные факты

  • Data Guard поддерживает до 30 резервных баз для одной основной, что позволяет создавать сложные топологии аварийного восстановления.
  • В Oracle Cloud Infrastructure (OCI) Data Guard интегрирован с сервисом Oracle Data Guard for OCI, который автоматизирует развёртывание и управление резервными базами в облаке.
  • Технология используется в крупнейших банках мира, включая JPMorgan Chase и Deutsche Bank, для обеспечения непрерывности операций.

Источники

  1. Oracle Corporation. «Oracle Data Guard Concepts and Administration». Oracle Database Documentation, Release 19c (2023).
  2. Oracle Corporation. «Oracle Active Data Guard: High Availability and Disaster Recovery». Oracle White Paper (2022).
  3. K. Loney, G. Koch. «Oracle Database 12c: The Complete Reference». McGraw-Hill Education (2014).
  4. T. Kyte, D. Kuhn. «Expert Oracle Database Architecture: 9i, 10g, and 11g Programming Techniques and Solutions». Apress (2010).
  5. Oracle Corporation. «Oracle Data Guard Broker: Configuration and Management». Oracle Support Document ID 1380739.1 (2023).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →