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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

Учетная запись, которую вы используете для SQL Server Replication Listener, должна иметь разрешения, описанные в разделе агент слияния Security, в подразделе «Подключение к издателю или распространителю». Кратко говоря, эта учетная запись должна:

  • Входите в список доступа к публикациям (PAL).

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

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

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

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

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

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

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

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

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

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

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

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

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

Веб-садоводство позволяет одновременно синхронизироваться более чем двум подписчикам. Он также увеличивает загрузку процессора на replisapi.dll, что может негативно сказаться на общей производительности сервера. Сбалансируйте эти факторы при выборе значения для Maximum Worker Processes.

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

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

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

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

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

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

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

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

gen — это зарезервированное слово в XML-файлах WebSync. Не пытайтесь публиковать таблицы со столбцами с именем gen.

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

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

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

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

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

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

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 агент слияния.

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

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

Веб-синхронизация предлагает множество вариантов для систем безопасности. Используйте следующий подход:

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

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

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

    Примечание.

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

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

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

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

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

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

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

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

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

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

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

Внимание

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