Синхронизация в репликации SQL работает при использовании вручную синхронизации, но не автоматически
Вопрос
Я использую SQL Server 2005, чтобы создать копию репликации основных баз данных, так что отчеты могут указывать на копию репликации вместо того, чтобы заблокировать наши основные базы данных.
Я настроил 3 базы данных в качестве публикаций, а затем 3 подписчики перемещают транзакции подписчикам, мгновенно я надеюсь!
Что, кажется, происходит, так это то, что при использовании функции «Вставка Tracer» репликация принимает издателя в дистрибьютор <2 секунды, но для репликации подписчиков может занять более 7 минут (и это локальные базы данных на сан). Это может быть по 2 причинам:
- Заявления SQL, используемые для запроса базы данных, получают блокировки, которые останавливают транзакции, обновляющие подписчики.
- Подписчики слишком заняты для репликации, чтобы применить изменения.
Что, кажется, беспокоит меня больше, состоит в том, что хотя репликационный монитор / Tracer отображают эти статистические данные, если вы используете «Детали подписки на подписку», а затем нажмите Пуск, он синхронизирует в течение нескольких секунд.
Моя цель будет постоянно синхронизировать данные (в идеале) или каждую минуту, возможно, я должен уменьшить размер пакетных транзакций?
Что я делаю неправильно?
Обратите внимание, что настроен флаг-концепция!
Решение
После некоторых исследований я заметил, что типичная местная публикация / задания подписки имеет 3 задания на подписку:
- Создать снимок
- Переместить журнал транзакций
- Откиньте (2)
Это связано с следующими заданиями:
- u003CSourceComp>Отказu003CSourceDB> -u003CPubName> -u003Cnumber?>
- u003CSourceComp>Отказu003CSourceDB> -u003Cnumber?>
- u003CSourceComp>Отказu003CSourceDB> -u003CDestComp> -u003CDestDB> -u003Cnumber?> Отказ
(3) был настроен для бега один раз в день. Поскольку это была модель толчков, я ожидал, что он работает непрерывно, но это не так. Конвенции именования были:
Я надеюсь, что это поможет кому-то там