Как достичь высокого уровня доступности сервера SQL Server - Репликация

ОГЛАВЛЕНИЕ


Репликация

Обеспечиваемую приложением SQL Server 2005 репликацию тоже можно использовать в архитектурах с высоким уровнем доступности. Данный продукт поддерживает четыре типа репликации: репликация моментальных снимков, транзакционная репликация, одноранговая репликация и репликация слиянием. Одноранговая репликация фактически является вариантом транзакционной репликации, поэтому здесь она рассматриваться не будет.

Репликация позволяет использовать для повышения уровня доступности дополнительный узел и базу данных-получатель, причем база данных-получатель настолько же работоспособна, насколько и база данных-источник. Это достигается путем использования репликации слиянием, в ходе которой берутся транзакции как с базы данных-источника, так и с базы данных-получателя. Затем обобщенные изменения применяются к обеим базам. Как нетрудно догадаться, такая конфигурация требует процедуры разрешения конфликтов.

Транзакционная репликация по своей логической структуре очень близка к зеркальному отображению баз данных. Транзакции, выполняемые в базе данных-источнике, доставляются в базу данных-получатель, чтобы гарантировать согласованность среды. Затем эти транзакции применяются к базе данных-получателю, которая потом ожидает выполнения в системе следующей транзакции.

Репликация моментальных снимков очень похожа на доставку журналов, поскольку и та, и другая проводятся через запланированные интервалы времени, а обновление базы данных-получателя выполняется посредством общего изменения, а не путем применения каждой транзакции к обеим системам сразу после их фиксации. Способы реализации обеих технологий во многом похожи.

Репликация требует специальных знаний, что может оказаться проблемой в организациях, не имеющих выделенного администратора баз данных. Репликация может быть достаточно сложной задачей в плане отладки и действительно требует более сложной структуры, если ее планируется использовать для повышения уровня доступности.

Репликация может вполне соответствовать требованиям, предъявляемым к решению, целью которого является повышение уровня доступности. Транзакционная репликация исполняет те же функции, которые зеркальное отображение баз данных может выполнять на уровне записей, но без возможности автоматического перехода на другой ресурс при сбое. Впрочем, при наличии достаточных ресурсов и возможности посвятить некоторое время написанию сценариев, создание решения для автоматического перехода на другой ресурс при сбое не должно стать большой проблемой.

В отличие от зеркального отображения баз данных, при репликации как исходная, так и конечная базы данных полностью доступны для клиентских приложений. Репликация моментальных снимков обеспечивает те же возможности, что и доставка журналов.

Нужно учитывать, что репликация — это проверенная и хорошо документированная технология. Использование репликации в качестве решения для повышения уровня доступности может иметь некоторые недостатки и приводить к снижению производительности, впрочем, не в большей степени, чем при применении зеркального отображения. Вероятнее всего, любое решение для повышения уровня доступности, построенное на основе репликации, будет иметь более сложную для управления архитектуру: не обязательно усовершенствованную, но точно более сложную. Кроме того, одна из наиболее значительных трудностей, которую нужно учитывать, состоит в следующем: если изменяется структура таблиц базы данных или необходимо настроить репликацию еще одной таблицы, придется удалить и заново определить публикацию, чтобы внести изменения в обе базы данных.