Рекомендации по обновлению реплицированных баз данных

SQL Server 2008 поддерживает обновление реплицируемых баз данных SQL Server предыдущих версий, при этом на время обновления узла прекращать работу с другими узлами не требуется. Соблюдайте следующие правила, определяющие допустимые версии объектов репликации.

  • SQL Server 2000 с пакетом обновления 3 (SP3) является минимальной версией, необходимой для участия в топологии репликации с SQL Server 2008. При использовании SQL Server 2005 требования к минимальной версии отсутствуют.

  • Версия распространителя не должна быть ниже версии издателя (во многих случаях распространителем и издателем является один и тот же экземпляр).

  • Версия издателя не должна превышать версию распространителя.

  • Версия подписчика зависит от типа публикации следующим образом.

    • Подписчик на публикацию транзакций может иметь любую версию, отличающуюся от версии издателя, но не более, чем на две версии. Например, издатель SQL Server 2000 может работать с подписчиками SQL Server 2008, а издатель SQL Server 2008 — с подписчиками SQL Server 2000.

    • Версия подписчика на публикацию слиянием не должна превышать версию издателя.

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

Этот раздел доступен в справочной документации по программе установки, а также в электронной документации по SQL Server. Ссылки на разделы, выделенные полужирным шрифтом в справочной документации по установке, относятся к разделам, доступным только в электронной документации.

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

Перед обновлением до SQL Server 2008 необходимо убедиться, что все зафиксированные транзакции из опубликованных таблиц были обработаны агентом чтения журнала. Чтобы это обеспечить, для каждой базы данных, содержащей публикации транзакций, необходимо выполнить следующие шаги.

  1. Убедитесь, что в базе данных запущен агент чтения журнала. По умолчанию агент работает постоянно.

  2. Остановите активность пользователей в опубликованных таблицах.

  3. Подождите, пока агент чтения журнала не скопирует транзакции в базу данных распространителя, затем остановите агент.

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

  5. Чтобы закрыть соединение процедуры sp_replcmds, выполните процедуру sp_replflush.

  6. Выполните обновление сервера до версии SQL Server 2008.

  7. Перезапустите агент SQL Server и агент чтения журнала, если после обновления они не запустятся автоматически.

Выполнение агентов для репликации слиянием после обновления

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

Механизм репликации слиянием хранит метаданные публикации и подписки в нескольких системных таблицах баз данных публикации и подписки. При запуске агента моментальных снимков обновляются метаданные публикации, а при запуске агента слияния — метаданные подписки. Пользователь должен только сформировать моментальный снимок публикации. Если при публикации слиянием используются параметризованные фильтры, каждой секции также соответствует моментальный снимок. Обновлять эти секционированные снимки не требуется. (В SQL Server 2000 параметризованные фильтры назывались динамическими фильтрами, а секционированные снимки — динамическими снимками.)

Для выполнения агентов можно использовать среду SQL Server Management Studio, монитор репликации и окно командной строки. Дополнительные сведения о выполнении агента моментальных снимков см. в следующих разделах.

Дополнительные сведения о выполнении агента слияния см. в следующих разделах.

Если после обновления SQL Server в топологии, в которой используется репликация слиянием, необходимо использовать новые возможности, измените уровень совместимости всех публикаций. Дополнительные сведения см. в разделе Использование нескольких версий SQL Server в топологии репликации.

Обновление до выпусков Standard Edition, Workgroup Edition и Express Edition

Перед обновлением от одного выпуска SQL Server 2008 до другого проверьте, что используемые функции поддерживаются в выпуске, до которого производится обновление. Дополнительные сведения см. в подразделе «Функции репликации SQL Server 2008» раздела Возможности, поддерживаемые различными выпусками SQL Server 2008.

Новая модель безопасности агента репликации

В версиях SQL Server, предшествующих SQL Server 2005, агенты выполнялись по умолчанию в контексте учетной записи службы агента SQL Server. SQL Server 2005 обеспечивает разделяемое управление всеми учетными записями, в контекстах которых агенты репликации работают и устанавливают соединения к базам данных и другим ресурсам с использованием встроенной авторизации Windows; каждому агенту можно назначить отдельную учетную запись. Дополнительные сведения см. в разделах Безопасность и защита (репликация) и Модель безопасности агента репликации.

Реализация новой модели безопасности повлияла на обновление и выполнение SQL Server 2000 в топологии репликации следующим образом.

  • С целью повышения уровня безопасности сценарии репликации, созданные в SQL Server 2000, необходимо обновить до SQL Server 2008, чтобы воспользоваться преимуществами расширений безопасности. Дополнительные сведения см. в разделе Как обновить сценарии репликации (программирование репликации на языке Transact-SQL).

  • Распространитель или подписчик, обновленный с версии SQL Server 2000 до SQL Server 2008, по-прежнему будет выполняться в контексте учетной записи агента SQL Server и, скорее всего, получит больше прав доступа, чем нужно. Таким образом, после обновления рекомендуется назначить агентам отдельные учетные записи с минимально необходимыми правами доступа. Чтобы назначить агентам отдельные учетные записи, выполните следующие действия.

    1. Внесите в сценарий публикацию и подписки.

    2. Внесите в сценарии изменения. Дополнительные сведения см. в разделе Как обновить сценарии репликации (программирование репликации на языке Transact-SQL).

    3. Удалите публикацию и подписки. Дополнительные сведения см. в разделах Публикация данных и объектов базы данных и Подписка на публикации.

    4. Заново создайте публикацию и подписки с использованием измененных сценариев.

    Сведения о правах, необходимых для агентов, см. в разделе Модель безопасности агента репликации; сведения об управлении именами для входа и паролями см. в разделе Управление именами входа и паролями в репликации. Новые конфигурации репликации, созданные после обновления, требуют, чтобы каждому агенту репликации соответствовала отдельная конфигурация учетной записи.

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

    Любые агенты, использующие при установлении локальных соединений с базами данных проверку подлинности SQL Server, начинают после этого использовать проверку подлинности Windows. Локальными называются соединения, производимые агентом к экземпляру SQL Server, запущенному на том же компьютере, что и агент. Например, агент слияния при подписке по запросу запускается на стороне подписчика, и все его соединения с подписчиком являются локальными.

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

    • При подписке по запросу подписчика SQL Server 2000 новая модель безопасности не используется, потому что агент слияния или распространителя создается на стороне подписчика.

    • При принудительной подписке, инициируемой распространителем SQL Server 2008 и принимаемой подписчиком SQL Server 2000, используется новая модель безопасности, потому что агент слияния или распространения создается на стороне распространителя.

    • Издатель SQL Server 2000 с распространителем SQL Server 2008 не использует новую модель безопасности (для агентов моментальных снимков, чтения журнала или чтения очереди), потому что эти агенты создаются в контексте базы данных публикации.

  • SQL Server 2005 и SQL Server 2008 используют одинаковую модель безопасности.

Веб-синхронизация для репликации слиянием

Веб-синхронизация репликации слиянием требует, чтобы в виртуальный каталог служб IIS, используемый для синхронизации, был скопирован прослушиватель репликации SQL Server (replisapi.dll). При настройке веб-синхронизации этот файл копируется в виртуальный каталог мастером настройки веб-синхронизации. Для обновления компонентов SQL Server, установленных на сервере IIS, необходимо вручную скопировать библиотеку replisapi.dll из каталога COM в виртуальный каталог сервера IIS. Дополнительные сведения о веб-синхронизации см. в разделе Настройка веб-синхронизации.

Восстановление из копии реплицированной базы данных из предыдущей версии

Чтобы обеспечить неизменность параметров репликации при восстановлении реплицированной базы данных на основе ее резервной копии, используйте в качестве целевых объектов восстановления сервер и базу данных с именами, идентичными именам сервера, и базы данных, на основе которых была создана резервная копия.