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, которые затем передаются по сети и применяются к резервной базе, поддерживая её в актуальном состоянии.
Основные компоненты
- Primary Database (Основная база): Производственная база данных, которая принимает все транзакции и генерирует журналы redo.
- Standby Database (Резервная база): Копия основной базы, поддерживаемая в синхронном или асинхронном состоянии. Может быть физической (Physical Standby) или логической (Logical Standby).
- Data Guard Broker: Утилита управления конфигурацией Data Guard, предоставляющая интерфейсы командной строки (dgmgrl) и графические (Enterprise Manager).
- Redo Transport Services: Сервисы, отвечающие за передачу журналов redo от основной базы к резервной.
- Redo Apply Services: Сервисы, применяющие полученные журналы к резервной базе для синхронизации.
Типы репликации
Data Guard поддерживает два основных режима репликации, определяющих степень защиты данных и производительность:
- Синхронная репликация (Maximum Protection): Транзакция на основной базе фиксируется только после того, как журнал redo будет записан как на основную, так и на резервную базу. Обеспечивает нулевую потерю данных (zero data loss), но может снижать производительность из-за задержек сети.
- Асинхронная репликация (Maximum Performance): Основная база фиксирует транзакцию немедленно, а журналы передаются на резервную базу асинхронно. Обеспечивает высокую производительность, но допускает потерю данных в случае сбоя (обычно в пределах нескольких секунд).
Также существует режим Maximum Availability, который является гибридным: транзакции фиксируются синхронно, но при недоступности резервной базы основная продолжает работу, переходя в асинхронный режим.
Типы резервных баз
- Physical Standby Database (Физическая резервная база): Точная блочная копия основной базы. Журналы redo применяются напрямую, что делает базу идентичной основной на уровне блоков. Может быть открыта в режиме «только для чтения» (Active Data Guard) для выполнения запросов.
- 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, для обеспечения непрерывности операций.
Источники
- Oracle Corporation. «Oracle Data Guard Concepts and Administration». Oracle Database Documentation, Release 19c (2023).
- Oracle Corporation. «Oracle Active Data Guard: High Availability and Disaster Recovery». Oracle White Paper (2022).
- K. Loney, G. Koch. «Oracle Database 12c: The Complete Reference». McGraw-Hill Education (2014).
- T. Kyte, D. Kuhn. «Expert Oracle Database Architecture: 9i, 10g, and 11g Programming Techniques and Solutions». Apress (2010).
- Oracle Corporation. «Oracle Data Guard Broker: Configuration and Management». Oracle Support Document ID 1380739.1 (2023).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →