Репликация SQL Server для HA и LB - PullRequest
1 голос
/ 01 февраля 2010

В настоящее время я пытаюсь создать высокодоступное и сбалансированное веб-приложение с использованием технологий SQL Server Replication Services . Автоматический переход при сбое встроен в логику приложения. По сути, есть две группы серверов приложений, которые работают одинаково, каждая со своим экземпляром SQL Server. Они настроены на использование другого экземпляра в случае сбоя. Данные непрерывно реплицируются между двумя экземплярами SQL Server посредством репликации транзакций. (Существует задержка в несколько секунд, это нормально.)

Я настроил оба сервера таким образом, чтобы агенты распространителя работали на распространителе (= издатель). Моя идея заключается в том, что пока сервер A (издатель) работает, он «собирает» транзакции и передает их на сервер B (подписчик), как только он становится доступным. То же самое для Сервера B. Параметр по умолчанию (распространитель на подписчике) «потеряет» изменения, пока подписчик находится в автономном режиме. Я прав с этим? ОБНОВЛЕНИЕ этого первого вопроса: транзакции (ожидающие доставки) хранятся в базе данных распространителя, поэтому они в любом случае "безопасны". Это приводит к другому вопросу: если агент распространителя находится на подписчике, как он узнает о новых транзакциях, которые будут доставлены? Через частый опрос?

Две базы данных имеют одинаковую схему (за исключением идентификатора и увеличения). Каждая таблица чтения-записи перекрестно реплицируется. Почему я не вижу цикл, когда я вставляю строку в таблицу? Когда я читаю о двунаправленной репликации в документах или блогах, означает ли это сценарий или скорее обновляемая репликация транзакций?

Что вы думаете об этом сценарии в целом? Это мой первый раз с репликацией, и я боюсь рисков. Поэтому любые комментарии очень приветствуются.

...