Настройка веб-синхронизации

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

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

  2. Для синхронизации подписок настройте сервер служб Microsoft IIS.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Веб-синхронизация поддерживается для служб IIS версий 5.0, 6.0 и 7. Мастер настройки веб-синхронизации не поддерживается в версии служб IIS 7.0.

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

Для использования веб-синхронизации со службами IIS 7 необходимо вручную установить и настроить компонент репликации (replisapi.dll), а затем создать и настроить веб-сайт, который будет использоваться при репликации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

После включения публикации и настройки служб 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 агента слияния. Дополнительные сведения см. в разделе Агент слияния репликации.

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

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

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

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

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

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

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

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

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

    Дополнительные сведения о разрешениях, необходимых для агентов, см. в разделе Модель безопасности агента репликации.

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

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

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

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

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

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

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

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

Важное примечаниеВажно!

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