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


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

Область применения: SQL Server Управляемый экземпляр SQL Azure

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

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

  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).

    Примечание.

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