Compartir a través de


Configuración de la sincronización web

La opción de sincronización Web para la replicación de mezcla de SQL Server permite la replicación de datos a través del protocolo HTTPS por Internet. Para usar la sincronización web, primero debe realizar las siguientes acciones de configuración:

  1. Crea cuentas de dominio y asigna inicios de sesión de SQL Server.

  2. Configure el equipo que ejecuta Microsoft Internet Information Services (IIS) para sincronizar las suscripciones.

  3. Configure una publicación de combinación para permitir la sincronización web.

  4. Configure una o varias suscripciones para usar la sincronización web.

Nota:

Si tiene previsto replicar grandes volúmenes de datos o usar tipos de datos grandes como varchar(max), lea la sección "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 satisfacer sus requisitos y directivas concretos. Es mejor tomar estas decisiones y crear las cuentas necesarias antes de intentar configurar IIS, la publicación y las suscripciones.

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

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

El SQL Server Replication Listener (replisapi.dll) se conecta al publicador suplantando la identidad de la cuenta especificada para el grupo de aplicaciones del servidor asociado con el sitio web de replicación.

La cuenta usada para el agente de escucha de replicación de SQL Server debe tener permisos como se describe en Seguridad del agente de mezcla, en la sección "Conectarse al publicador o al distribuidor". En resumen, la cuenta debe:

  • Sé miembro de la Lista de Acceso a la Publicación (PAL).

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

  • Estar asignada 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 usa replicación de SQL Server, también deberá crear cuentas e inicios de sesión para los agentes de replicación. Para obtener más información, vea las secciones "Configuración de la publicación" y "Configuración de la suscripción" de este tema.

Antes de configurar la sincronización web, se recomienda leer la sección "Procedimientos recomendados de seguridad para la sincronización web" de este tema. Para obtener más información sobre la seguridad de sincronización web, consulte Arquitectura de seguridad para sincronización web.

Configuración del equipo que ejecuta IIS

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

La sincronización web se admite en IIS a partir de la versión 5.0. El Asistente para configurar sincronización web no se admite en la versión 7.0 de IIS. A partir de SQL Server 2012, para usar el componente de sincronización web en el servidor IIS, se recomienda que los usuarios instalen SQL Server con replicación. Puede ser la edición gratuita de SQL Server Express.

Ssl es necesario para la sincronización web. Necesitará un certificado de seguridad emitido por una entidad de certificación. Solo con fines de prueba, puede usar un certificado de seguridad auto emitido.

Para configurar IIS para la sincronización web

Creación de un jardín web

El agente de escucha de replicación de SQL Server admite dos operaciones de sincronización simultáneas por subproceso. Superar este límite puede hacer que el oyente de replicación deje de responder. El número de subprocesos asignados a replisapi.dll viene determinado por la propiedad Maximum Worker Processes del grupo de aplicaciones. De forma predeterminada, esta propiedad se establece en 1.

Puede admitir un mayor número de operaciones de sincronización simultáneas por CPU aumentando el valor de la propiedad Proceso de trabajo máximo. El escalado horizontal aumentando el número de procesos de trabajo por CPU se conoce como la creación de un "jardín web".

La jardinería web permitirá que más de dos suscriptores se sincronicen al mismo tiempo. Aumentará la utilización de la CPU en replisapi.dll, lo que puede afectar negativamente al rendimiento general del servidor. Es importante equilibrar estas consideraciones al elegir un valor para Los procesos de trabajo máximos.

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

  1. En el Administrador de Internet Information Services (IIS), expanda el nodo del servidor local y, a continuación, 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, en el encabezado Modelo de proceso, haga clic en la fila denominada Máximo de procesos de trabajo. Cambie el valor de la propiedad y, a continuación, haga clic en Aceptar.

Configuración de la publicación

Para usar la sincronización web, cree una publicación de la misma manera que lo haría para una topología de combinación 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 mediante uno de los métodos siguientes: SQL Server Management Studio, Transact-SQL o Replication Management Objects (RMO). Para habilitar la sincronización web, deberá proporcionar la dirección del servidor web para las conexiones de suscriptor.

Si es la primera vez que utiliza un publicador, 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 distribución y proteger la carpeta de instantáneas.

gen es una palabra reservada en archivos XML asincrónicos. No intente publicar tablas que contengan columnas denominadas gen.

Configuración de la suscripción

Después de habilitar una publicación y configurar IIS, cree una suscripción de extracción y especifique que la suscripción de extracción debe sincronizarse mediante IIS. (La sincronización web solo se admite para las suscripciones de extracción).

Actualización desde una versión anterior de SQL Server

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

Replicación de grandes volúmenes de datos

Para ayudar a evitar posibles problemas de memoria en los equipos suscriptores La sincronización web usa un tamaño máximo predeterminado de 100 MB para el archivo XML usado para transferir cambios. El límite se puede aumentar 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 es de 100 MB a 4 GB. El valor se especifica en KB. Establecer este parámetro en un valor alto no garantiza que pueda sincronizar esa cantidad de datos. El límite efectivo está restringido por la cantidad de memoria contigua disponible en el equipo suscriptor. Si debe tener un valor superior a 100 MB, se recomienda aumentar el valor incrementalmente y probar el consumo de memoria con una carga de trabajo típica en el suscriptor.

El tamaño máximo del archivo XML es de 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 de 25 MB. Debe asegurarse de que los datos de cada lote no superen unos 20 MB, lo que deja espacio para los metadatos y cualquier otra sobrecarga. Este límite tiene las siguientes implicaciones:

  • No se puede replicar ninguna columna que haga que los datos y los metadatos superen los 25 MB. Esto puede ser un problema al replicar filas que contienen tipos de datos grandes, como varchar(max).

  • Si usted replica grandes volúmenes de datos, es posible que tenga que 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 mediante los parámetros -DownloadGenerationsPerBatch y -UploadGenerationsPerBatch del Agente de mezcla. Para obtener más información, consulte 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 empezar con un valor de 10 y, a continuación, ajustar en función de 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 sobre los perfiles, consulte Perfiles del agente de replicación.

Procedimientos recomendados de seguridad para la sincronización web

Hay muchas opciones para la configuración relacionada 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 (una configuración típica para la replicación de mezcla). Sin embargo, IIS debe instalarse en un equipo independiente.

  • Utilice la Capa de Conexiones Seguras (SSL) para cifrar la conexión entre el suscriptor y el equipo que ejecuta Internet Information Services (IIS). Esto es necesario para la sincronización web.

  • Use la autenticación básica para las conexiones del suscriptor a IIS. Mediante la autenticación básica, IIS puede establecer conexiones con el publicador o distribuidor en nombre del suscriptor sin necesidad de delegación. La delegación es necesaria si usa la autenticación integrada.

    Nota:

    La autenticación básica es el método por el que se pasan las credenciales a IIS. La autenticación básica no impide especificar cuentas de dominio de Windows para las conexiones realizadas a IIS.

  • Especifique que el Agente de instantáneas debe ejecutarse en una cuenta de dominio de Windows y especifique que el agente debe establecer conexiones como esa cuenta. (Esta es la configuración predeterminada). Especifique que cada Agente de mezcla debe ejecutarse en la cuenta de dominio del usuario que usa el equipo suscriptor y especifique que el agente debe establecer conexiones como esa cuenta.

    Para obtener más información sobre los permisos que requieren los agentes, consulte Modelo de seguridad del agente de replicación.

  • Especifique la misma cuenta de dominio que usa el Agente de mezcla al especificar una cuenta y una contraseña en la página Información del servidor web del Asistente para nueva suscripción o al especificar valores para los parámetros de @internet_url y @internet_login de sp_addpullsubscription_agent. Esta cuenta debe tener permisos de lectura para la compartición de instantáneas.

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

  • La cuenta con la que se ejecuta el agente de escucha de replicación de SQL Server (Replisapi.dll) también es la cuenta que se conectará al publicador y al distribuidor durante la sincronización. Esta cuenta debe asignarse 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 "Establecer permisos para el agente de escucha de replicación de SQL Server" en la sección Configurar IIS para la sincronización web.

  • Puede usar FTP para transferir la instantánea desde el editor al equipo que ejecuta IIS. La instantánea siempre se entrega desde el equipo que 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 detrás de un firewall, es posible que tenga que abrir puertos en el firewall para habilitar la sincronización web.

    • El equipo suscriptor se conecta al equipo que ejecuta IIS a través de HTTPS mediante SSL, que normalmente está configurado para usar el puerto 443. Los suscriptores de SQL Server Compact también pueden conectarse a través de HTTP, que normalmente está configurado para usar el puerto 80.

    • El equipo que ejecuta IIS normalmente se conecta al publicador o distribuidor mediante el puerto 1433 (instancia predeterminada). Cuando el publicador o distribuidor es una instancia con nombre en un servidor con otra instancia predeterminada, el puerto 1500 se usa normalmente para conectarse a la instancia con nombre.

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

Importante

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 Security Considerations for a SQL Server Installation.

Véase también

Sincronización web para replicación por mezcla