Physical Standby Database
Physical Standby Database — это резервная копия базы данных Oracle, создаваемая и поддерживаемая в актуальном состоянии с помощью технологии Oracle Data Guard. Она представляет собой точную, побайтовую копию основной (primary) базы данных, которая постоянно синхронизируется с ней путём применения архивных журналов повторного выполнения (redo logs). Physical Standby Database используется для обеспечения высокой доступности (High Availability, HA), аварийного восстановления (Disaster Recovery, DR) и разгрузки основной базы данных при выполнении операций только для чтения.
История и развитие
Технология Data Guard была впервые представлена корпорацией Oracle в версии 9i (2001 год) как эволюция более ранних решений для резервного копирования, таких как Standby Database (появившаяся в Oracle 7). Изначально Physical Standby Database могла находиться только в режиме восстановления и не допускала доступа пользователей. С выходом Oracle 11g (2007 год) была добавлена возможность открытия резервной базы в режиме «только для чтения» (Read-Only) с одновременным применением журналов, что значительно расширило её функциональность. В Oracle 12c (2013 год) и последующих версиях были внедрены такие улучшения, как поддержка многопотокового применения журналов, автоматическое переключение (Failover) с минимальными потерями данных и интеграция с облачными средами (Oracle Cloud Infrastructure).
Принцип работы
Physical Standby Database функционирует на основе механизма передачи и применения журналов повторного выполнения (redo data). Основная база данных генерирует redo-записи, которые фиксируют все изменения данных. Эти записи архивируются в файлы архивных журналов (archived redo logs) или передаются в реальном времени через сеть (синхронная или асинхронная передача). Резервная база получает эти журналы и применяет их к своей копии данных, поддерживая её в состоянии, идентичном основной базе на момент последнего применённого журнала.
Режимы синхронизации
Data Guard поддерживает три основных режима защиты данных, определяющих баланс между производительностью и гарантией сохранности данных:
- Максимальная защита (Maximum Protection) — синхронная передача redo-данных. Транзакция на основной базе фиксируется только после того, как журнал будет записан как на основной, так и на резервной базе. Это гарантирует нулевую потерю данных (Zero Data Loss), но может снижать производительность из-за задержек сети.
- Максимальная доступность (Maximum Availability) — синхронная передача с возможностью асинхронного переключения. Если резервная база становится недоступной, основная база автоматически переходит в режим максимальной производительности, чтобы не блокировать транзакции. При восстановлении связи режим возвращается к синхронному.
- Максимальная производительность (Maximum Performance) — асинхронная передача redo-данных. Транзакция фиксируется на основной базе без ожидания подтверждения от резервной. Это обеспечивает минимальное влияние на производительность, но допускает потенциальную потерю данных в случае сбоя.
Виды и конфигурации
Physical Standby Database может быть развёрнута в различных конфигурациях, в зависимости от требований к отказоустойчивости и нагрузке:
- Одиночная резервная база — классическая схема «один к одному», где одна основная база синхронизируется с одной резервной.
- Каскадная конфигурация — резервная база может выступать в роли промежуточного узла, передавая redo-журналы другим резервным базам. Это снижает нагрузку на основную базу и улучшает масштабируемость.
- Конфигурация с несколькими резервными базами — одна основная база может синхронизироваться с несколькими резервными, расположенными в разных географических точках, для обеспечения максимальной отказоустойчивости.
- Физическая и логическая резервные базы — в отличие от логической (Logical Standby), которая преобразует redo-данные в SQL-операторы и может иметь отличную от основной структуру, Physical Standby Database является точной копией на уровне блоков данных.
Применение
Physical Standby Database широко используется в корпоративных информационных системах, где требуется высокая доступность и защита от катастрофических сбоев. Основные сценарии применения:
- Аварийное восстановление (Disaster Recovery) — при выходе из строя основной базы данных (например, из-за пожара, наводнения или сбоя оборудования) резервная база может быть переведена в режим основной (Switchover или Failover) с минимальным временем простоя.
- Разгрузка основной базы — резервная база может быть открыта в режиме «только для чтения» для выполнения отчётов, аналитических запросов или резервного копирования, снижая нагрузку на продуктивную систему.
- Тестирование и обновление — резервная копия может использоваться для тестирования обновлений Oracle, патчей или изменений схемы без риска для основной базы.
- Миграция данных — Physical Standby Database может быть использована для переноса данных на новое оборудование или в облачную среду с минимальным временем простоя.
Преимущества и недостатки
Преимущества
- Высокая точность — побайтовая синхронизация гарантирует, что резервная база является точной копией основной, что упрощает восстановление.
- Минимальные потери данных — в режиме максимальной защиты потери данных исключены.
- Автоматизация — процесс передачи и применения журналов полностью автоматизирован, что снижает риск человеческой ошибки.
- Гибкость — поддержка различных конфигураций и режимов защиты позволяет адаптировать решение под конкретные бизнес-требования.
Недостатки
- Требования к ресурсам — резервная база требует таких же объёмов дискового пространства и вычислительных мощностей, как и основная, что увеличивает затраты.
- Сложность настройки — для корректной работы требуется квалифицированная настройка сети, конфигурации Oracle и мониторинга.
- Задержки при асинхронной передаче — в режиме максимальной производительности возможна потеря данных за последние несколько секунд или минут.
- Ограниченная функциональность в режиме чтения — хотя резервная база может быть открыта для чтения, некоторые операции (например, создание индексов) могут быть ограничены.
Интересные факты
- Physical Standby Database может быть использована для создания «золотой копии» (golden copy) данных, которая затем распространяется на другие системы.
- Технология Data Guard поддерживает автоматическое переключение (Fast-Start Failover) без участия администратора, если настроен наблюдатель (Observer).
- В Oracle 19c и более новых версиях добавлена поддержка DML-операций (INSERT, UPDATE, DELETE) на резервной базе в режиме «только для чтения» с помощью механизма Active Data Guard, что позволяет выполнять ограниченные изменения данных без нарушения синхронизации.
Критика
Основные претензии к Physical Standby Database связаны с её ресурсоёмкостью и сложностью управления. В небольших организациях с ограниченным бюджетом развёртывание полноценной резервной базы может быть экономически неоправданным. Кроме того, в некоторых сценариях (например, при высокой нагрузке на сеть) асинхронная передача может приводить к значительным задержкам, что снижает актуальность резервной копии. Альтернативой могут служить облачные решения (например, Oracle Cloud Autonomous Database), которые предоставляют встроенные механизмы резервного копирования и восстановления без необходимости настройки Data Guard.
Источники
- Oracle Data Guard Concepts and Administration, Oracle Corporation
- Oracle Database High Availability Overview, Oracle Corporation
- Документация Oracle 19c: Data Guard
- Статья «Oracle Data Guard: Physical Standby Database» на Oracle Technology Network
- Книга «Oracle Data Guard: A Practical Guide» by Larry Carpenter
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →