Хочу поделить результатами поисков решения задачи резервирования баз 1С средствами Microsoft SQL Server. На самом деле задача передо мной стоит более масштабная - отказоустойчивый кластер 1С с балансировкой нагрузки. Тут как бы со стороны 1С все понятно - настраиваешь кластер серверов и вот тебе отказоустойчивость и балансировка, но касается это только сервера 1С, отказоустойчивость СУБД это отдельная песня.
В статье приводится лишь обзор средств репликации SQL Server.
MS SQL Server предоставляет
следующие возможности:
- Репликация
- Доставка журналов транзакций
- Зеркальное отображение базы данных
- Группы доступности AlwaysOn
- Репликация
- Имеет 4 вида репликации:
- Репликация моментальных снимков — синхронизация полного состояния базы данных
- Репликация транзакций — синхронизация только транзакций
- Одноранговая репликация — синхронизация транзакций нескольким базам получателей
- Репликация слиянием — базы-источники и базы-получатели совместно вносят изменения
- Требования:
- Для базы-источника лицензия Standart;
- Для базы-получатель достаточно лицензии Express
- Ограничения:
- только одна база-источник и только одна база- получатель(кроме одноранговой репликации и репликации слиянием)
- репликация настраивается для каждой таблицы базы данных (статьи публикации), указанные таблицы нельзя удалять из базы данных, что является существенным ограничением для баз 1С, т. к. изменение состава таблиц происходит часто.
- Преимущества
- быстрая синхронизация (в пределах нескольких секунд, но не синхронная)
- база-получатель доступна постоянно
- достаточно одной лицензии Standart
- легко настраивается
- синхронизация транзакций (в режиме репликации транзакциями) происходит по требованию, то есть при возникновении события изменения данных, что уменьшает время синхронизации.
- Итог: не подходит настройки статей публикации — фиксированный список таблиц к синхронизации. Время синхронизации при репликации транзакций занимает несколько секунд. Время синхронизации при репликации слиянием занимает около 16 минут.
- Доставка журналов транзакций
- Требования
- База-источник и базы-получатели должны иметь лицензию Standart
- Ограничения
- На время синхронизации база-получатель находится в norecovery режиме, что не позволяет использовать базу.
- Восстановление (перевод базы из режима non recovery в режим «в сети») производится вручную
- Смена роли базы с базы-получателя на базу-источник производится вручную
- Преимущества
- Наличие нескольких баз-получателей
- Нет настройки по таблицам — подходит для часто изменяющихся баз
- Возможность установки сервера мониторинга. Отслеживает доставку и хранит информацию о сбоях
- Итог: доставка журналов подходит для резервирования баз, но имеются минусы данного решения — при возникновении сбоя необходимо вручную перевести режим резервной базы в «в сети», что занимает время и требует соответствующего мониторинга.
- Зеркальное отображение
- Требования
- Основной сервер и зеркальный сервер должны иметь лицензию Standart для режима высокой производительности (транзакция завершается до передачи на зеркальный сервер)
- Основной сервер и зеркальный сервер должны иметь лицензию Enterprise для режима высокой безопасности (транзакция завершается после передачи на зеркальный сервер)
- Ограничения
- Только один основной и один зеркальный сервера
- Зеркальный сервер не доступен для работы пока не поменяет роль
- Преимущества
- Автоматический перевод зеркального сервера в работающий режим при поломке основного. Работает только при наличии следящего сервера в режиме высокой безопасности
- Нет настройки по таблицам — подходит для часто изменяющихся баз
- Итог: данное решение позволяет сделать резервирование с автоматическим переводом на зеркальный сервер, но данное решение требует трех серверов с лицензией Enterprise, т.к. для автоматического перехода нужна синхронная репликация, а она поддерживается только в версии Enterprise. В режиме высокой производительности следящий сервер может неблагоприятно повлиять на доступность ресурсов. Если для сеанса зеркального отображения базы данных настроен следящий сервер, то основной сервер должен быть подключен по крайней мере к одному из двух других экземпляров сервера — зеркальному или следящему серверу. В противном случае база данных становится недоступной.
- AlwaysOn (этот вариант мной почти не рассматривался)
- На каждом экземпляре сервера должен быть установлен выпуск SQL Server 2012 Enterprise Edition.
- Каждый компьютер должен являться узлом в отказоустойчивой кластеризации Windows Server (WSFC).
- Основной недостаток - стоимость, которая складывается не только из лицензий на СУБД, но и из лицензий на Windows Server. Если прикинуть стоимость по прайсу 1С, то стоимость только СУБД будет более 1 млн. рублей.
Источники:
Здравствуйте! А ещё при зеркальном отображении недоступен монопольный режим, и работа Конфигуратора вследствие этого затруднена (нельзя редактировать метаданные конфигурации). С AlwaysOn похоже что тоже недоступен.
ОтветитьУдалить