Автор: Konstantin Kosinsky
Для многих приложений весьма критична доступность сервера баз данных. По этому SQL Server содержит сразу три подхода по обеспечению высокой доступности плюс один с таким побочным эффектом:
- Failover clustering
- Log shipping
- Database Mirroring (имеет два варианта: синхронный и асинхронный)
- Peer-to-peer replication
У каждого из них есть свои плюсы и минусы, ограничения и возможные сценарии использования. По пробуем разобраться для чего предназначен каждый из них и что нужно помнить, выбирая подход.
Критерии которые могут влиять на выбор того или иного варианта:
- Элементы для которых обеспечивается высокая доступность (экземпляр, отдельная база данных или группа таблиц)
- Возможный объем потерь данных
- Время простоя
- Типичные сценарии применения
- Процедура разворачивания
- Стабильность к множественным выходам из строя
- Возможность применения для балансировки нагрузки (как с обновление, так и только для чтения)
- Поддерживающие версии и редакции SQL Server
- Стоимость
Небольшая сводная таблица:
0-вые потери | Авто | Влияние на производ. | Число копий данных | Число резервных экземпляров | ||
Log Shipping | Нет | Нет | Слабое | Любое | Любое | |
Failove Clustering | Да | Да (от 30секунд) | Нет | 1 | До 16 | |
Database Mirroring Sync | Да | Да (от 3 секунд) | Существенное | 2 | 1 | |
Database Mirroring Async | Нет (но очень малые) | Нет | Слабое | 2 | 1 | |
Peer-to-Peer Replication | Нет | Резервные копии всегда доступны | Слабое | Любое | Любое |
Запись на копиях | Физ. расстояние | Спец. оборобувание | Область | Чтение с копий | ||
Log Shipping | Нет | Любое | Нет | БД | Да | |
Failove Clustering | Нет | Длина кабеля для дискового массива | Общий дисковый массив | Экземляр | Нет | |
Database Mirroring Sync | Нет | Любое | Нет | БД | Да (при создании мгновенного снимка) | |
Database Mirroring Async | Нет | Любое | Нет | БД | Да (при создании мгновенного снимка) | |
Peer-to-Peer Replication | Да | Любое | Нет | Выбранные таблицы и их части | Да |
Один важный для всех вариантов вопрос – это лицензирование. И здесь работает правило – если экземпляр SQL Server’а используется только для обеспечения высокой доступности, то дополнительная лицензия не нужна.