Configure Web Synchronization

Область применения: SQL Server

Параметр веб-синхронизации для репликации слиянием SQL Server обеспечивает репликацию данных с помощью протокола HTTPS через Интернет. Чтобы использовать веб-синхронизацию, сначала необходимо выполнить следующие действия.

  1. Создание учетных записей домена и сопоставление имен входа SQL Server.

  2. Настройте компьютер, на котором выполняется Microsoft IIS (IIS), для синхронизации подписок.

  3. Настроить публикацию слиянием для включения веб-синхронизации.

  4. Настройте одну или несколько подписок для использования веб-синхронизации.

Примечание.

Если планируется реплицировать большие объемы данных или использовать типы данных больших значений, например varchar(max), прочтите подраздел «Реплицирование больших объемов данных» в этом разделе.

Для успешной настройки веб-синхронизации необходимо выбрать настройки безопасности в соответствии с используемыми требованиями и политиками. Лучше выполнить эти настройки и создать необходимые учетные записи до начала настройки служб IIS, публикаций и подписок.

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

Создание новых учетных записей и сопоставление имен входа SQL Server

Прослушиватель Репликация SQL Server (replisapi.dll) подключается к издателю путем олицетворения учетной записи, указанной для пула приложений, связанного с веб-сайтом репликации.

Учетная запись, используемая для прослушивателя Репликация SQL Server, должна иметь разрешения, как описано в разделе "Безопасность агент слияния" в разделе "Подключение к издателю или распространителю". В сводке учетная запись должна:

  • Она должна входить в список доступа к публикации (PAL).

  • Она должна быть сопоставлена с именем входа, связанным с пользователем в базе данных публикации.

  • Она должна быть сопоставлена с именем входа, связанным с пользователем в базе данных распространителя.

  • Она должна иметь разрешение на чтение в хранилище моментального снимка.

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

Прежде чем настраивать веб-синхронизацию, рекомендуется прочитать приведенный ниже раздел «Лучшие методики обеспечения безопасности для веб-синхронизации». Дополнительные сведения о безопасности при веб-синхронизации см. в разделе Security Architecture for Web Synchronization.

Настройка компьютера, на котором работают службы IIS

Для выполнения веб-синхронизации требуется установить и настроить службы IIS. Для настройки публикации для использования веб-синхронизации необходим URL-адрес веб-сайта репликации.

Веб-синхронизация поддерживается в IIS, начиная с версии 5.0. Мастер настройки веб-синхронизации не поддерживается в версии служб IIS 7.0. Начиная с SQL Server 2012 мы рекомендуем устанавливать SQL Server с поддержкой репликации, если нужно использовать компонент веб-синхронизации на сервере IIS. Это может быть бесплатный выпуск SQL Server Express.

При веб-синхронизации используется протокол TLS. Также необходим сертификат безопасности, выпущенный центром сертификации. Для отладки можно использовать собственный сертификат безопасности.

Настройка служб IIS для веб-синхронизации

Создание веб-сада

Прослушиватель Репликация SQL Server поддерживает две параллельные операции синхронизации на поток. При превышении этого ограничения средство прослушивания репликации может перестать отвечать на запросы. Количество потоков, выделенных replisapi.dll, определяется свойством пула приложения «Максимальное число рабочих процессов». Значением этого свойства по умолчанию является 1.

Количество параллельных операций синхронизации, приходящихся на один ЦП, можно увеличить, увеличив значение свойства «Максимальное число рабочих процессов». Масштабирование путем увеличения количества рабочих процессов на ЦП называется созданием веб-сада.

Создание веб-сада позволит выполнять одновременную синхронизацию более двух подписчиков. Также при этом будет увеличена нагрузка replisapi.dll на ЦП, что может отрицательно повлиять на производительность сервера. При выборе значения для свойства «Максимальное число рабочих процессов» необходимо учитывать все описанное выше.

Увеличение максимального числа рабочих процессов в IIS 7

  1. В диспетчере служб IISразверните узел локального сервера, затем выберите узел Пул приложений .

  2. Выберите пул приложений, связанный с веб-сайтом синхронизации, и выберите Дополнительные параметры на панели Действия .

  3. В диалоговом окне «Дополнительные параметры» под заголовком Модель процесса выберите строку с именем Максимальное число рабочих процессов. Измените значение этого свойства и нажмите ОК.

Настройка публикации

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

После создания публикации включите возможность веб-синхронизации с помощью одного из следующих методов: SQL Server Management Studio, Transact-SQL или объектов управления репликацией (RMO). Чтобы включить веб-синхронизацию, необходимо указать адрес веб-сервера для соединений подписчика.

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

gen является зарезервированным словом в XML-файлах websync. Не пытайтесь публиковать таблицы, содержащие столбцы с именем gen.

Настройка подписки

После включения публикации и настройки служб IIS создайте подписку по запросу и укажите, что она должна синхронизироваться с помощью служб IIS. (Веб-синхронизация поддерживается только для подписок по запросу.)

Обновление с более ранней версии SQL Server

Если у вас настроена топология веб-синхронизации и обновление SQL Server, необходимо убедиться, что последняя версия Replisapi.dll копируется в виртуальный каталог, используемый веб-синхронизацией. По умолчанию последняя версия Replisapi.dll находится в C:\Program Files\Microsoft SQL Server\<nnn>\COM.

Реплицирование больших объемов данных

Чтобы избежать потенциальных проблем с памятью на компьютерах подписчиков, веб-синхронизация использует максимальный размер по умолчанию — 100 МБ для XML-файла, применяемого для передачи изменений. Этот предел может быть повышен путем установки следующего раздела реестра.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication

WebSyncMaxXmlSize DWORD 2000000

Диапазон допустимых значений для этого раздела составляет от 100 МБ до 4 ГБ. Значение указывается в КБ. Установка большого значения для этого параметра не гарантирует, что удастся синхронизировать такой объем данных. Эффективный предел ограничивается размером непрерывной памяти, доступной на компьютере подписчика. Если необходимо значение больше 100 МБ, рекомендуется увеличивать его постепенно и проверять потребление памяти с использованием типичной рабочей нагрузки на подписчике.

Максимальный размер XML-файла составляет 4 ГБ, но репликация синхронизирует изменения из этого файла пакетами. Максимальный размер пакета данных и метаданных составляет 25 МБ. Необходимо гарантировать, что объем данных в каждом пакете не будет превышать уровень 20 МБ, чтобы сохранить место для метаданных и других служебных данных. Это ограничение влечет за собой такие последствия:

  • невозможна репликация столбца, содержимое которого приводит к превышению объемом данных и метаданных порогового значения в 25 МБ. В результате могут возникнуть проблемы, если выполняется репликация строк, содержащих типы данных с большими значениями, например varchar(max);

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

Размер пакета для репликации слиянием измеряется в поколениях, которые представляют собой коллекции изменений для статьи. Число поколений в пакете указывается с помощью параметров агента слияния -DownloadGenerationsPerBatch и -UploadGenerationsPerBatch. Дополнительные сведения см. в статье Replication Merge Agent.

При работе с большими объемами данных рекомендуется указывать небольшие значения для этих параметров пакетов. Рекомендуем начинать со значения, равного 10, и затем корректировать его с учетом потребностей приложений, а также производительности. Обычно эти параметры задаются в профиле агента. Дополнительные сведения о профилях см. в разделе Replication Agent Profiles.

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

Существует множество вариантов настроек безопасности при выполнении веб-синхронизации. Рекомендуется следующий подход:

  • Распространитель SQL Server и издатель могут находиться на одном компьютере (обычной настройке для репликации слиянием). Однако службы IIS необходимо установить на отдельном компьютере.

  • Для шифрования соединения подписчика с компьютером, на котором работают службы IIS, используйте протокол TLS (ранее — SSL). Это необходимо для выполнения веб-синхронизации.

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

    Примечание.

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

  • Укажите, что агент моментальных снимков должен запускаться и подключаться под учетной записью домена Windows. (Это конфигурация по умолчанию.) Укажите, что каждый агент слияния должен выполняться под учетной записью домена пользователя, использующего компьютер подписчика, и указать, что агент должен выполнять подключения в качестве этой учетной записи.

    Дополнительные сведения о разрешениях, необходимых для агентов, см. в разделе Replication Agent Security Model.

  • Укажите учетную запись домена, используемую агентом слияния, при вводе пароля и учетной записи на странице Данные о веб-сервере мастера создания подписки или в качестве значений параметров @internet_url и @internet_login хранимой процедуры sp_addpullsubscription_agent. Для данной учетной записи должно быть предоставлено разрешение на чтение хранилища моментального снимка.

  • Для каждой публикации следует использовать отдельный виртуальный каталог на сервере IIS.

  • Учетная запись, в которой выполняется прослушиватель Репликация SQL Server (Replisapi.dll), также является учетной записью, которая будет подключаться к издателю и распространителю во время синхронизации. Эта учетная запись должна быть сопоставлена с учетной записью входа SQL на издателе и распространителе. Дополнительные сведения см. в разделе "Установка разрешений для средства прослушивания репликации SQL Server" статьи Настройка служб IIS для веб-синхронизации.

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

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

    • Компьютер подписчика соединяется с компьютером, на котором запущены службы IIS через протокол HTTPS с использованием TLS, обычно настроенного для использования порта 443. Подписчики SQL Server Compact также могут подключаться по протоколу HTTP, который обычно настраивается для использования порта 80.

    • Компьютер, на котором запущены службы IIS, обычно соединяется с издателем или распространителем через порт 1433 (экземпляр по умолчанию). Если издатель или распространитель является именованным экземпляром на сервере с другим экземпляром по умолчанию, для соединения с этим именованным экземпляром обычно используется порт 1500.

    • Если компьютер, на котором запущены службы IIS, отделен от распространителя брандмауэром, а для доставки моментального снимка используется протокол FTP, должны быть открыты порты, необходимые для работы этого протокола. Дополнительные сведения см. в статье Передача моментальных снимков через FTP.

Внимание

Открытие портов на брандмауэре может привести к незащищенности сервера от вредоносных атак. Перед открытием портов убедитесь в том, что знаете принципы работы брандмауэров. Дополнительные сведения см. в разделе Security Considerations for a SQL Server Installation.