понедельник, 28 октября 2013 г.

Обзор средств репликации MS SQL Server 2012

Хочу поделить результатами поисков решения задачи резервирования баз 1С средствами Microsoft SQL Server. На самом деле задача передо мной стоит более масштабная - отказоустойчивый кластер 1С с балансировкой нагрузки. Тут как бы со стороны 1С все понятно - настраиваешь кластер серверов и вот тебе отказоустойчивость и балансировка, но касается это только сервера 1С, отказоустойчивость СУБД это отдельная песня.

В статье приводится лишь обзор средств репликации SQL Server.

MS SQL Server предоставляет следующие возможности:
  1. Репликация 
  2. Доставка журналов транзакций 
  3. Зеркальное отображение базы данных 
  4. Группы доступности AlwaysOn

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

1 комментарий:

  1. Здравствуйте! А ещё при зеркальном отображении недоступен монопольный режим, и работа Конфигуратора вследствие этого затруднена (нельзя редактировать метаданные конфигурации). С AlwaysOn похоже что тоже недоступен.

    ОтветитьУдалить