Поделиться через


Как заморозить топологию репликации (программирование репликации на языке Transact-SQL)

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

Замораживание топологии репликации транзакций с подписками только для чтения

  1. Приостановите операции со всеми опубликованными таблицами на издателе.

  2. В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_posttracertoken (Transact-SQL)).

  3. В базе данных публикации на издателе выполните процедуру sp_helptracertokenhistory.

  4. Убедитесь, что каждый подписчик получил трассировочный маркер.

Замораживание топологии репликации транзакций с обновляемыми подписками

  1. Приостановите операции со всеми опубликованными таблицами на издателе и на всех подписчиках.

  2. Если кто-либо из подписчиков использует подписки, обновляемые посредством очередей, выполните следующие действия.

    1. Если агент чтения очереди не работает постоянно, запустите его. Дополнительные сведения о запуске агентов см. в разделе Основные понятия об исполняемых объектах агента репликации или Как запустить и остановить агент репликации (среда SQL Server Management Studio).

    2. Чтобы убедиться в том, что очередь пуста, выполните процедуру sp_replqueuemonitor на каждом подписчике.

  3. В базе данных публикации на издателе выполните процедуру sp_posttracertoken.

  4. В базе данных публикации на издателе выполните процедуру sp_helptracertokenhistory.

  5. Убедитесь, что каждый подписчик получил трассировочный маркер.

Замораживание одноранговой топологии репликации транзакций

  1. Приостановите операции со всеми опубликованными таблицами на всех узлах.

  2. Выполните процедуру sp_requestpeerresponse в каждой базе данных публикации в топологии.

  3. Если агент чтения журнала или агент распространителя не выполняется в непрерывном режиме, запустите его. Сначала необходимо запустить агент чтения журнала, а затем агент распространителя. Дополнительные сведения о запуске агентов см. в разделе Основные понятия об исполняемых объектах агента репликации или Как запустить и остановить агент репликации (среда SQL Server Management Studio).

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

Проверка того, что одноранговый узел получил все предыдущие изменения

  1. Выполните процедуру sp_requestpeerresponse в каждой базе данных публикации на проверяемом узле.

  2. Если агент чтения журнала или агент распространителя не выполняется в непрерывном режиме, запустите его. Сначала необходимо запустить агент чтения журнала, а затем агент распространителя. Дополнительные сведения о запуске агентов см. в разделе Основные понятия об исполняемых объектах агента репликации или Как запустить и остановить агент репликации (среда SQL Server Management Studio).

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

Замораживание топологии репликации слиянием

  1. Приостановите операции со всеми опубликованными таблицами на издателе и на всех подписчиках.

  2. Выполните агент слияния для каждой подписки дважды: сначала для синхронизации всех подписок, а затем для повторной синхронизации каждой подписки. Таким образом будет гарантирована репликация изменений на все узлы. Дополнительные сведения о запуске агентов см. в разделе Основные понятия об исполняемых объектах агента репликации или Как запустить и остановить агент репликации (среда SQL Server Management Studio).

    ПримечаниеПримечание

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