Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
La opción de sincronización web para SQL Server Merge Replication permite replicar datos utilizando el protocolo HTTPS a través de Internet. Para utilizar la sincronización web, primero debe completar los siguientes pasos de configuración:
Cree nuevas cuentas de dominio y asocie los inicios de sesión de SQL Server.
Configure el equipo que ejecuta Microsoft Internet Information Services (IIS) para sincronizar suscripciones.
Configure una publicación de combinación para que permita la sincronización web.
Configure 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 "Replicar grandes volúmenes de datos" de este tema.
Para configurar con éxito la sincronización web, debes decidir cómo configurar la seguridad para satisfacer tus requisitos y políticas particulares. Toma estas decisiones y crea las cuentas necesarias antes de intentar configurar IIS, la publicación y las suscripciones.
Los siguientes procedimientos describen una configuración de seguridad simplificada que utiliza cuentas locales. Esta configuración simplificada es adecuada para instalaciones donde tanto IIS como el SQL Server Publisher y Distribuidor funcionan en el mismo ordenador, aunque es mucho más probable (y recomendable) que uses una topología de múltiples servidores para una instalación en producción. Puede sustituir las cuentas de dominio por cuentas locales en los procedimientos.
Creación de nuevas cuentas y mapeo de inicios de sesión de SQL Server
El agente de escucha de replicación de SQL Server (replisapi.dll) se conecta al Publicador suplantando la cuenta que especifica para el grupo de aplicaciones asociado al sitio web de replicación.
La cuenta que utilices para el SQL Server Replication Listener necesita los permisos descritos en Agente de mezcla Security, en la sección "Conectar al Publisher o Distribuidor." En resumen, la cuenta debe:
Forme parte de la lista de acceso a publicaciones (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.
Disponer de permisos de lectura en el recurso compartido de instantáneas.
Si es la primera vez que usas SQL Server Replication, también necesitas crear cuentas e inicios de sesión para los agentes de replicación. Para más información, consulte las secciones "Configurando la publicación" y "Configurando la suscripción" en este artículo.
Antes de configurar la sincronización web, lee la sección "Mejores prácticas de seguridad para la sincronización web" de este artículo. Para obtener más información acerca de la seguridad en la sincronización web, vea Security Architecture for Web Synchronization.
Configurar el equipo en el que se ejecuta IIS
La sincronización web requiere que instale y configure IIS. Necesitas la URL del sitio web de replicación antes de poder configurar una publicación para usar sincronización web.
La sincronización web es compatible con IIS, a partir de la versión 5.0. El asistente de Configurar Sincronización Web no está compatible con IIS versión 7.0. A partir de SQL Server 2012, para usar el componente de sincronización web en el servidor IIS, instala SQL Server con replicación. Puede ser la edición gratuita de SQL Server Express.
TLS es necesario para la sincronización web. Necesitas un certificado de seguridad emitido por una autoridad certificadora. Únicamente en los casos en que se estén realizando pruebas se puede utilizar un certificado de seguridad autofirmado.
Para configurar IIS para la sincronización web
SQL Server Management Studio: Configurar IIS para la sincronización web
SQL Server Management Studio: Configurar IIS 7 para la sincronización web
Creando 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 Replication Listener deje de responder. La propiedad Máximo de procesos de trabajo del grupo de aplicaciones determina cuántos hilos se asignan a replisapi.dll. Por defecto, 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 de máximo de procesos de trabajo. La ampliación horizontal mediante el aumento del número de procesos de trabajo por CPU se denomina crear "hospedaje multiproceso en una única máquina".
La jardinería web permite que más de dos suscriptores se sincronizen al mismo tiempo. También aumenta la utilización de la CPU en replisapi.dll, lo que puede afectar negativamente al rendimiento general del servidor. Ten en cuenta estas consideraciones al elegir un valor para Número máximo de procesos de trabajo.
Para aumentar el número máximo de procesos de trabajo en IIS 7
En Administrador de Internet Information Services (IIS), expanda el nodo del servidor y, después, haga clic en el nodo Grupos de aplicaciones .
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 .
En el cuadro de diálogo Configuración avanzada, bajo el encabezado Modelo de proceso, haga clic en la fila denominada Máximo de procesos de trabajo. Cambie el valor de la propiedad y haga clic en Aceptar.
Configuración de la publicación
Para usar la sincronización web, crea una publicación de la misma manera que creas una publicación estándar de topología de fusión. Para obtener más información sobre la creación de publicaciones, vea Publicar datos y objetos de base de datos.
Después de crear la publicación, active la opción para permitir la sincronización web utilizando uno de los siguientes métodos: SQL Server Management Studio, Transact-SQL o Replication Management Objects (RMO). Para habilitar la sincronización web, necesitas proporcionar la dirección del servidor web para las conexiones de suscriptores.
Si usas un Publisher por primera vez, también debes 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 sobre cómo configurar la distribución, vea Configure Distribution (Configurar la distribución) y Proteger la carpeta de instantáneas.
Gen es una palabra reservada en archivos XML websync. No intentes publicar tablas que contengan columnas llamadas 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 dicha suscripció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 tienes configurada una topología de sincronización web y actualizas SQL Server, asegúrate de que la última versión se replisapi.dll copie al directorio virtual utilizado por la sincronización web. Por defecto, la última versión de replisapi.dll se encuentra en C:\Program Files\Microsoft SQL Server\<nnn>\COM.
Replicación de grandes volúmenes de datos
Para ayudar a evitar posibles problemas de memoria en los ordenadores Subscriber, la sincronización web utiliza un tamaño máximo por defecto de 100 MB para el archivo XML que se utiliza para transferir cambios. Aumenta el límite estableciendo la siguiente clave de registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication
WebSyncMaxXmlSize DWORD 2000000
El rango de valores aceptables para esta clave es de 100 MB a 4 GB. El valor se especifica en KB. Poner este parámetro en un valor alto no garantiza que puedas sincronizar esa cantidad de datos. El límite real queda restringido por la cantidad de memoria contigua disponible en el equipo suscriptor. Si debes tener un valor mayor que 100 MB, aumenta incrementalmente el valor y prueba el consumo de memoria con una carga de trabajo típica en el Suscriptor.
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 de 25 MB. Debes asegurarte de que los datos de cada lote no superen aproximadamente los 20 MB, lo que permite metadatos y cualquier otra sobrecarga. Este límite tiene las implicaciones siguientes:
No puedes replicar ninguna columna que haga que los datos y metadatos superen los 25 MB. Este límite puede ser un problema cuando replicas filas que contienen grandes tipos de datos, como varchar(max).
Si replicas grandes volúmenes de datos, puede que tengas 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 conjuntos de cambios por artículo. Utiliza los parámetros -DownloadGenerationsPerBatch y -UploadGenerationsPerBatch del Agente de mezcla para especificar el número de generaciones en un lote. Para más información, consulte Replication Agente de mezcla.
Para grandes volúmenes de datos, especifique un número pequeño para cada uno de los parámetros de procesamiento por lotes. Empieza con un valor de 10 y luego ajusta según las necesidades y el rendimiento de la aplicación. Normalmente, especificas estos parámetros en un perfil de agente. Para obtener más información acerca de los perfiles, vea Replication Agent Profiles.
Mejores prácticas de seguridad para la sincronización web
La sincronización web ofrece muchas opciones para configuraciones relacionadas con la seguridad. Use el enfoque siguiente:
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, instala IIS en un ordenador aparte.
Utilice la Seguridad de la capa de transporte (TLS), anteriormente conocida como Capa de sockets seguros (SSL), para cifrar la conexión entre el suscriptor y el equipo en el que se ejecuta IIS. La sincronización web requiere este cifrado.
Use la autenticación básica para las conexiones del suscriptor a IIS. Mediante el uso de autenticación básica, IIS puede establecer conexiones con el Publisher/Distribuidor en nombre del Suscriptor sin necesidad de delegación. La delegación es necesaria si se usa la autenticación integrada.
Nota:
La autenticación básica es el método que se utiliza para enviar credenciales a IIS. La autenticación básica no impide especificar cuentas de dominio de Windows para las conexiones que se hacen con IIS.
Especifique que Agente de instantáneas se ejecuta con una cuenta de dominio de Windows y que el agente realice conexiones con esa cuenta. (Esta es la configuración predeterminada.) Especifica que cada Agente de mezcla se ejecuta bajo la cuenta de dominio del usuario que usa el ordenador Suscriptor, y que el agente realice conexiones como esa cuenta.
Para más información sobre los permisos que requieren los agentes, consulte Modelo de Seguridad de Agentes de Replicación.
Especifique la misma cuenta de dominio que usa 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_urly@internet_loginde 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 bajo la que se ejecuta el SQL Server Replication Listener (
replisapi.dll) también es la cuenta que se conecta al Publisher y al Distribuidor durante la sincronización. Esta cuenta debe asignarse a una cuenta de inicio de sesión de SQL Server en el Publisher y el Distributor. Para obtener más información, consulte la sección "Establecer permisos para el agente de escucha de replicación de SQL Server" en Configurar IIS para la Sincronización web.Puedes usar FTP para entregar la instantánea desde el Publisher al ordenador que ejecuta IIS. El ordenador que ejecuta IIS siempre entrega la instantánea al Suscriptor usando 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 ordenador suscriptor se conecta al ordenador que ejecuta IIS sobre HTTPS usando TLS, 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 se configura normalmente para usar el puerto 80.
El ordenador que ejecuta IIS normalmente se conecta al Publisher o 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 ordenador que ejecuta IIS está separado del distribuidor por un cortafuegos y se utiliza un recurso compartido FTP para la entrega de instantáneas, debes 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.