Configurar la sincronización Web

La opción de sincronización web para la replicación de mezcla de SQL Server habilita la replicación de datos usando el protocolo HTTPS a través de Internet. Para utilizar la sincronización web, primero debe realizar las siguientes acciones de configuración:

  1. Crear nuevas cuentas de dominio y asignar inicios de sesión de SQL Server.

  2. Configurar el equipo en el que se está ejecutando Microsoft Internet Information Services (IIS) para sincronizar suscripciones.

  3. Configurar una publicación de mezcla para permitir la sincronización web.

  4. Configurar una o más suscripciones para utilizar la sincronización web.

[!NOTA]

Si piensa replicar grandes volúmenes de datos o utilizar tipos de datos de gran tamaño como varchar(max), lea la sección sobre replicación de grandes volúmenes de datos en este tema.

Para configurar correctamente la sincronización web, debe decidir cómo configurar la seguridad para que se cumplan los requisitos y directivas propios. Es preferible tomar estas decisiones y crear las cuentas necesarias antes de intentar configurar IIS, la publicación y las suscripciones.

En los procedimientos que siguen, se describe una configuración de seguridad simplificada utilizando cuentas locales, por motivos de brevedad. Esta configuración simplificada es adecuada para instalaciones donde IIS y el publicador y el distribuidor de SQL Server se ejecutan en el mismo equipo, aunque es mucho más probable (y recomendado) que utilice una topología de varios servidores en una instalación de producción. Puede sustituir las cuentas de dominio por cuentas locales en los procedimientos.

Crear cuentas nuevas y asignar inicios de sesión de SQL Server

La Escucha de replicación de SQL Server (replisapi.dll) se conecta al publicador suplantando la cuenta especificada para el grupo de aplicaciones asociado al sitio web de replicación.

La cuenta utilizada para la Escucha de replicación de SQL Server debe tener los permisos descritos en Seguridad del Agente de mezcla, en la sección sobre conexión con el publicador o el distribuidor. En resumen, la cuenta debe:

  • Ser miembro de la lista de acceso a la publicación (PAL).

  • Estar asignada a un inicio de sesión asociado a un usuario en la base de datos de publicación.

  • Estar asignada a un inicio de sesión asociado a un usuario en la base de datos de distribución.

  • Tener permisos de lectura en el recurso compartido de instantáneas.

Si es la primera vez que utiliza la replicación de SQL Server, también tendrá que crear cuentas e inicios de sesión para los agentes de replicación. Para obtener más información, vea las secciones sobre configuración de la publicación y de la suscripción en este tema.

Antes de configurar la sincronización web, se recomienda leer la sección sobre prácticas recomendadas de seguridad para la sincronización web en este tema. Para obtener más información acerca de la seguridad en la sincronización web, vea Arquitectura de seguridad para la sincronización Web.

Configurar el equipo en el que se ejecuta IIS

La sincronización web requiere instalar y configurar IIS. Necesitará la dirección URL del sitio web de replicación para poder configurar una publicación de modo que utilice la sincronización web.

La sincronización web se admite en las versiones 5.0, 6.0 y 7 de IIS. El Asistente para configurar la sincronización web no se admite en la versión 7.0 de IIS.

SSL es necesario para la sincronización web. Necesitará un certificado de seguridad emitido por una entidad de certificación. Únicamente en los casos en que se estén realizando pruebas se puede utilizar un certificado de seguridad emitido automáticamente.

Para utilizar la sincronización web con IIS 7, debe instalar y configurar manualmente el componente de replicación (replisapi.dll) y, a continuación, crear y configurar un sitio web para ser utilizado por la replicación.

Para configurar IIS para la sincronización web

Crear un hospedaje multiproceso en una única máquina

La Escucha de replicación de SQL Server admite dos operaciones de sincronización simultáneas por subproceso. Si se supera este límite, la Escucha de replicación podría dejar de responder. La propiedad Máximo de procesos de trabajo del grupo de aplicaciones determina el número de subprocesos asignados a replisapi.dll. De forma predeterminada, esta propiedad está establecida en 1.

Puede admitir un número mayor de operaciones de sincronización simultáneas por CPU aumentando el valor de la propiedad Máximo de procesos de trabajo. La ampliación horizontal mediante el aumento del número de procesos de trabajo por CPU se conoce como la creación de un "hospedaje multiproceso en una única máquina".

El hospedaje multiproceso en una única máquina permitirá que más de dos suscriptores se sincronicen a la vez. También aumentará la utilización de la CPU por parte de replisapi.dll, lo que puede afectar negativamente al rendimiento general del servidor. Es importante tener en cuenta estos aspectos al elegir un valor para el máximo de procesos de trabajo.

Para aumentar el máximo de procesos de trabajo en IIS 7

  1. En Administrador de Internet Information Services (IIS), expanda el nodo del servidor local y, después, haga clic en el nodo Grupo de aplicaciones.

  2. Seleccione el grupo de aplicaciones asociado al sitio de sincronización web y, a continuación, haga clic en Configuración avanzada en el panel Acciones.

  3. En el cuadro de diálogo Configuración avanzada, bajo el encabezado Procesar modelo, haga clic en la fila etiquetada Máximo de procesos de trabajo. Cambie el valor de la propiedad y haga clic en Aceptar.

Configurar la publicación

Para utilizar la sincronización web, cree una publicación del mismo modo que lo haría para una topología de mezcla estándar. Para obtener más información, vea Publicar datos y objetos de base de datos.

Una vez creada la publicación, habilite la opción para permitir la sincronización web utilizando uno de estos métodos: SQL Server Management Studio, Transact-SQL u Objetos de administración de replicación (RMO). Para habilitar la sincronización web, tendrá que proporcionar la dirección del servidor web para las conexiones del suscriptor.

Si utiliza un publicador por primera vez, también debe configurar un distribuidor y un recurso compartido de instantáneas. El Agente de mezcla de cada suscriptor debe tener permisos de lectura en el recurso compartido de instantáneas. Para obtener más información, vea Configurar la distribución y Proteger la carpeta de instantáneas.

Para configurar una publicación de modo que permita la sincronización web

Configurar la suscripción

Después de habilitar una publicación y configurar IIS, cree una suscripción de extracción y especifique que dicha suscripción debe sincronizarse mediante el uso de IIS. (La sincronización Web sólo puede usarse para las suscripciones de extracción.)

Para configurar una suscripción para que utilice la sincronización Web

Actualizar de una versión anterior de SQL Server

Si tiene una topología de sincronización web existente configurada y actualiza SQL Server, debe asegurarse de que la última versión de Replisapi.dll se copie en el directorio virtual utilizado por la sincronización web. De forma predeterminada, la última versión de Replisapi.dll se encuentra en C:\Archivos de programa\Microsoft SQL Server \<nnn>\COM.

Replicar grandes volúmenes de datos

Para evitar que se produzcan posibles problemas de memoria en los equipos del suscriptor, la sincronización web usa un tamaño máximo predeterminado de 100 MB para el archivo XML que se utiliza para transferir los cambios. Es posible aumentar este límite estableciendo la siguiente clave del Registro:

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

WebSyncMaxXmlSize DWORD 2000000

El intervalo de valores aceptables para esta clave está comprendido entre 100 MB y 4GB. El valor se especifica en KB. Establecer este parámetro en un valor alto no garantiza que sea posible sincronizar esa cantidad de datos. El límite real queda restringido por la cantidad de memoria contigua disponible en el equipo suscriptor. Si el valor ha de ser mayor de 100 MB, es recomendable que aumente el valor de forma incremental y que pruebe el consumo de memoria en el suscriptor con una carga de trabajo típica.

El tamaño máximo para el archivo XML es 4 GB, pero la replicación sincroniza los cambios de ese archivo en lotes. El tamaño máximo del lote de datos y metadatos es 25 MB. Debe asegurarse de que los datos de cada lote no superen el límite aproximado de 20 MB, lo que concede un margen suficiente para los metadatos y cualquier otra sobrecarga. Este límite tiene las implicaciones siguientes:

  • No se puede replicar ninguna columna que haga que los datos y los metadatos superen los 25 MB. Este podría constituir un problema si se replican filas que contienen tipos de datos de gran tamaño, como varchar(max).

  • Si se replican grandes volúmenes de datos, podría ser necesario ajustar el tamaño del lote del Agente de mezcla.

El tamaño del lote para la replicación de mezcla se mide en generaciones, que son colecciones de cambios por artículo. El número de generaciones de un lote se especifica utilizando los parámetros .DownloadGenerationsPerBatch y .UploadGenerationsPerBatch del Agente de mezcla. Para obtener más información, vea Agente de mezcla de replicación.

Para grandes volúmenes de datos, especifique un número pequeño para cada uno de los parámetros de procesamiento por lotes. Se recomienda comenzar con un valor de 10 y optimizarlo después de acuerdo con las necesidades y el rendimiento de la aplicación. Normalmente, estos parámetros se especifican en un perfil de agente. Para obtener más información acerca de los perfiles, vea Perfiles del Agente de replicación.

Prácticas recomendadas de seguridad para la sincronización web

Existen muchas opciones de configuración relacionadas con la seguridad en la sincronización web. Se recomienda el siguiente enfoque:

  • El distribuidor y el publicador de SQL Server pueden estar en el mismo equipo (configuración típica para la replicación de mezcla). Sin embargo, IIS debe estar instalado en otro equipo.

  • Utilice SSL (Capa de sockets seguros) para cifrar la conexión entre el suscriptor y el equipo en el que se ejecuta IIS. Esto es necesario para la sincronización web.

  • Use la autenticación básica para las conexiones del suscriptor a IIS. Con la autenticación básica, IIS puede realizar conexiones al publicador o distribuidor en nombre del suscriptor sin que sea necesaria la delegación. La delegación es necesaria si se utiliza la autenticación integrada.

    [!NOTA]

    La autenticación básica es el método que se utiliza para enviar credenciales a IIS. El uso de la autenticación básica no impide que se puedan especificar cuentas de dominio de Windows para las conexiones a IIS.

  • Especifique que el Agente de instantáneas se ejecute con una cuenta de dominio de Windows y que el agente realice las conexiones con esta cuenta. Es la configuración predeterminada. Especifique que cada Agente de mezcla se ejecute con la cuenta de dominio del usuario que utiliza el equipo del suscriptor y que el agente realice las conexiones con esta cuenta.

    Para obtener más información acerca de los permisos que necesitan los agentes, vea Modelo de seguridad del Agente de replicación.

  • Especifique la misma cuenta de dominio que utiliza el Agente de mezcla cuando especifique una cuenta y una contraseña en la página Información del servidor Web del Asistente para nueva suscripción o cuando especifique valores para los parámetros @internet_url y @internet_login de sp_addpullsubscription_agent. Esta cuenta debe tener permisos de lectura en el recurso compartido de la instantánea.

  • Cada publicación debe utilizar un directorio virtual independiente para IIS.

  • La cuenta con la que se ejecuta la Escucha de replicación de SQL Server (Replisapi.dll) es también la cuenta que conectará con el publicador y el distribuidor durante la sincronización. Esta cuenta debe estar asignada a una cuenta de inicio de sesión de SQL en el publicador y el distribuidor. Para obtener más información, vea la sección sobre cómo configurar los permisos de la Escucha de replicación de SQL Server en el tema Cómo configurar IIS para la sincronización Web.

  • Puede usar FTP de modo que se entregue la instantánea desde el publicador al equipo en el que se ejecuta IIS. La instantánea se entrega siempre desde el equipo en el que se ejecuta IIS al suscriptor mediante HTTPS. Para obtener más información, vea Transferir instantáneas mediante FTP.

  • Si los servidores de la topología de replicación están situados detrás de un firewall, quizá sea necesario abrir puertos del firewall para habilitar la sincronización web.

    • El equipo del suscriptor se conecta al equipo que está ejecutando IIS con HTTPS usando SSL, que se configura normalmente para usar el puerto 443. SQL Server Compact 3.5 SP1 Los suscriptores también pueden conectarse a través de HTTP, que se configura normalmente para usar el puerto 80.

    • El equipo en el que se ejecuta IIS suele conectarse con el publicador o con el distribuidor usando el puerto 1433 (instancia predeterminada). Cuando el publicador o el distribuidor es una instancia con nombre en un servidor con otra instancia predeterminada, suele usarse el puerto 1500 para la conexión con la instancia con nombre.

    • Si el equipo en el que se ejecuta IIS está separado del distribuidor mediante un firewall y se usa un recurso compartido FTP para la entrega de instantáneas, deben abrirse los puertos que se usan para FTP. Para obtener más información, vea Transferir instantáneas mediante FTP.

Nota importanteImportante

El hecho de abrir puertos en el firewall puede dejar el servidor expuesto a ataques malintencionados. Asegúrese de que conoce los sistemas de firewall antes de abrir puertos. Para obtener más información, vea Consideraciones de seguridad para una instalación de SQL Server.

Historial de cambios

Contenido actualizado

Se ha agregado IIS versión 7.0 a la lista de versiones de IIS admitidas.

Se ha cambiado el orden de los pasos, de modo que la configuración de la publicación va detrás de la configuración de IIS.

Se ha agregado una sección que describe la creación de cuentas y la asignación de inicios de sesión.