Настроить веб-синхронизацию
Поддержка веб-синхронизации для репликации слиянием SQL Server позволяет производить репликацию данных по протоколу HTTPS через Интернет. Чтобы использовать веб-синхронизацию, сначала необходимо выполнить следующие действия.
Создать новые учетные записи домена и сопоставить им имена входов SQL Server .
Для синхронизации подписок настройте сервер служб Microsoft IIS.
Настроить публикацию слиянием для включения веб-синхронизации.
Настройте одну или несколько подписок для использования веб-синхронизации.
Примечание
Если планируется реплицировать большие объемы данных или использовать типы данных больших значений, например varchar(max)
, прочтите подраздел «Реплицирование больших объемов данных» в этом разделе.
Для успешной настройки веб-синхронизации необходимо выбрать настройки безопасности в соответствии с используемыми требованиями и политиками. Лучше выполнить эти настройки и создать необходимые учетные записи до начала настройки служб IIS, публикаций и подписок.
Для краткости в процедуре ниже описывается упрощенная конфигурация безопасности, выполненная с использованием локальных учетных записей. Эта упрощенная конфигурация может использоваться для установок, в которых службы IIS, издатель и распространитель SQL Server запущены на одном компьютере, хотя, вероятнее всего, при установке продукта будет использоваться топология с несколькими серверами (рекомендуется использовать именно такой вариант). В этих процедурах локальные учетные записи домена можно заменить на учетные записи домена.
Создание новых учетных записей и сопоставление имен входа SQL Server
Средство прослушивания репликации SQL Server (replisapi.dll) соединяется с издателем с помощью олицетворения учетной записи, указанной для пула приложений, связанного с веб-сайтом репликации.
Учетная запись, используемая для прослушивателя Репликация SQL Server, должна иметь разрешения, как описано в разделе агент слияния Security в разделе "Подключение к издателю или распространителю". Таким образом, учетная запись должна:
Она должна входить в список доступа к публикации (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.
При веб-синхронизации используется протокол SSL. Также необходим сертификат безопасности, выпущенный центром сертификации. Для отладки можно использовать собственный сертификат безопасности.
Настройка служб IIS для веб-синхронизации
SQL Server Management Studio: Настройка сервера IIS для веб-синхронизации
SQL Server Management Studio: Настройка сервера IIS 7 для веб-синхронизации
Создание веб-сада
Средство прослушивания репликации SQL Server поддерживает две параллельные операции синхронизации в каждом потоке. При превышении этого ограничения средство прослушивания репликации может перестать отвечать на запросы. Количество потоков, выделенных replisapi.dll, определяется свойством пула приложения «Максимальное число рабочих процессов». Значением этого свойства по умолчанию является 1.
Количество параллельных операций синхронизации, приходящихся на один ЦП, можно увеличить, увеличив значение свойства «Максимальное число рабочих процессов». Масштабирование путем увеличения количества рабочих процессов на ЦП называется созданием веб-сада.
Создание веб-сада позволит выполнять одновременную синхронизацию более двух подписчиков. Также при этом будет увеличена нагрузка replisapi.dll на ЦП, что может отрицательно повлиять на производительность сервера. При выборе значения для свойства «Максимальное число рабочих процессов» необходимо учитывать все описанное выше.
Увеличение максимального числа рабочих процессов в IIS 7
В диспетчере служб IISразверните узел локального сервера, затем выберите узел Пул приложений .
Выберите пул приложений, связанный с веб-сайтом синхронизации, и выберите Дополнительные параметры на панели Действия .
В диалоговом окне «Дополнительные параметры» под заголовком Модель процесса выберите строку с именем Максимальное число рабочих процессов. Измените значение этого свойства и нажмите ОК.
Настройка публикации
Чтобы использовать веб-синхронизацию, создайте публикацию аналогично созданию стандартной топологии слияния. Дополнительные сведения см. в статье Публикация данных и объектов базы данных.
После создания публикации включите параметр , чтобы разрешить веб-синхронизацию, используя один из следующих методов: 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, используйте протокол Secure Sockets Layer (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 с использованием SSL, обычно настроенного для использования порта 443. ПодписчикиSQL Server Compact также могут использовать соединение через протокол HTTP, для которого обычно настраивается использование порта 80.
Компьютер, на котором запущены службы IIS, обычно соединяется с издателем или распространителем через порт 1433 (экземпляр по умолчанию). Если издатель или распространитель является именованным экземпляром на сервере с другим экземпляром по умолчанию, для соединения с этим именованным экземпляром обычно используется порт 1500.
Если компьютер, на котором запущены службы IIS, отделен от распространителя брандмауэром, а для доставки моментального снимка используется протокол FTP, должны быть открыты порты, необходимые для работы этого протокола. Дополнительные сведения см. в статье Передача моментальных снимков через FTP.
Важно!
Открытие портов на брандмауэре может привести к незащищенности сервера от вредоносных атак. Перед открытием портов убедитесь в том, что знаете принципы работы брандмауэров. Дополнительные сведения см. в разделе Security Considerations for a SQL Server Installation.